DE102018006243A1 - Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes - Google Patents

Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes Download PDF

Info

Publication number
DE102018006243A1
DE102018006243A1 DE102018006243.1A DE102018006243A DE102018006243A1 DE 102018006243 A1 DE102018006243 A1 DE 102018006243A1 DE 102018006243 A DE102018006243 A DE 102018006243A DE 102018006243 A1 DE102018006243 A1 DE 102018006243A1
Authority
DE
Germany
Prior art keywords
image
offset
pixels
patch
neural network
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
DE102018006243.1A
Other languages
English (en)
Inventor
Zhe Lin
Xin Lu
Xiaohui SHEN
Jimei Yang
Jiahui YU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Inc filed Critical Adobe Inc
Publication of DE102018006243A1 publication Critical patent/DE102018006243A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • G06T5/30Erosion or dilatation, e.g. thinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • 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
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/755Deformable models or variational models, e.g. snakes or active contours
    • G06V10/7557Deformable models or variational models, e.g. snakes or active contours based on appearance, e.g. active appearance models [AAM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/191Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
    • G06V30/19173Classification techniques
    • 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/047Probabilistic or stochastic networks
    • 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/10016Video; Image sequence
    • 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/20004Adaptive image processing
    • G06T2207/20012Locally adaptive
    • 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/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/759Region-based matching

Landscapes

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

Abstract

Beschrieben wird das Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes. Zunächst wird ein Digitalbild, an dem ein Bildbearbeitungsvorgang durchgeführt werden soll, als Eingabe für einen Patchabgleicher, der ein Offsetvorhersage-Neuronalnetzwerk aufweist, bereitgestellt. Aus diesem Bild generiert das Offsetvorhersage-Neuronalnetzwerk auf Grundlage des Bildbearbeitungsvorganges, für den das Netzwerk trainiert wird, eine Offsetvorhersage, die als Verschiebungsabbildung ausgebildet ist, die Offsetvektoren aufweist, die eine Verschiebung von Pixeln des Digitalbildes an verschiedene bzw. andere Orte zum Durchführen des Bildverarbeitungsvorganges darstellen. Pixelwerte des Digitalbildes werden auf die Bildpixel, die von dem Vorgang betroffen sind, kopiert durch: Bestimmen der Vektorpixel, die den von dem Bildbearbeitungsvorgang betroffenen Bildpixeln entsprechen, und Abbilden der Pixelwerte der von den bestimmten Offsetvektoren dargestellten Bildpixel auf die betroffenen Pixel. Entsprechend dieser Abbildung werden die Pixelwerte der betroffenen Pixel eingestellt, was beim Durchführen des Bildbearbeitungsvorganges effektiv ist.

Description

  • Hintergrund
  • Auf dem Gebiet der Rechentechnologien entwickeln sich Contenterstellungssysteme ständig weiter und verbessern Digitalbilder auf vielerlei Arten, die in der Vergangenheit weitgehend Berufsfotografen vorbehalten waren. Angesichts dieser Weiterentwicklung können Contenterstellungssysteme professionelle und qualitativ hochwertige Digitalbilder aus Digitalbildern generieren, die von Vorrichtungsnutzern mit wenig oder gar keiner Erfahrung oder Kenntnis der Regeln beim Komponieren optisch ansprechender Bilder, so beispielsweise der Drittelregel, aufgenommen werden. Bei einem Beispiel können Contenterstellungssysteme ein Digitalbild analysieren, auf Grundlage der Analyse Nachbearbeitungsvorgänge, so beispielsweise Beschneiden bzw. Freistellen, Zoomen, Filtern und dergleichen mehr, auswählen und an dem Digitalbild durchführen. In einigen Fällen setzen Contenterstellungssysteme das Patchabgleichen ein, um derartige Bildbearbeitungsvorgänge auszuführen. Allgemein impliziert das Patchabgleichen das Kopieren von Werten aus einer Gruppe von Pixeln in einem Bild auf die von einem Vorgang betroffenen Pixel des Bildes. Man betrachte ein Beispiel, bei dem das Patchabgleichen in Verbindung mit dem Füllen eines Loches eines Bildes eingesetzt wird. Zum Füllen des Loches kann das Patchabgleichen eingesetzt werden, um Werte von Pixeln, die dem restlichen Bildinhalt entsprechen, auf diejenigen Pixel, die dem Loch entsprechen, zu kopieren.
  • Herkömmliche Patchabgleichstechniken versuchen, einen nächstgelegenen Patch (beispielsweise eine Gruppe von Pixeln) mit Pixelwerten ausfindig zu machen, die mit den Pixeln, die von einem Bildbearbeitungsvorgang bearbeitet werden, annähernd abgeglichen sind. Bei einigen Szenarien kann das bloße Abgleichen des nächstgelegenen Patches zu bearbeiteten Bildern führen, die semantisch nicht konsistent sind. Man betrachte ein Beispiel, bei dem ein Digitalbild des Gesichtes einer Person ein Loch aufweist, das an einem der Augen der Person befindlich ist. Gefüllt wird dieses Loch bei Verwendung herkömmlicher das Patchabgleichen implizierender Techniken des Lochfüllens auf Grundlage von Patches von Pixeln, die in der Nähe des Loches befindlich sind, also beispielsweise von Pixeln, die den Brauen, der Augenhöhle, den Wangen, der Nase und dergleichen mehr der Person entsprechen. Das bloße Kopieren von Werten dieser Pixel auf die Lochpixel am Auge der Person gibt jedoch das Auge an genau dem Ort nicht wieder. Entsprechend sind herkömmliche Patchabgleichstechniken zur Implementierung verschiedener Bildbearbeitungsvorgänge gegebenenfalls ungeeignet.
  • Zusammenfassung
  • Zur Lösung dieser Probleme wird das Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes in einer Digitalmedienumgebung eingesetzt. Zunächst wird ein Digitalbild empfangen, bezüglich dessen ein Bildbearbeitungsvorgang durchgeführt werden soll. Das Digitalbild wird als Eingabe für einen Patchabgleicher bereitgestellt, der derart ausgebildet ist, dass er ein Framework aufweist, das ein Offsetvorhersage-Neuronalnetzwerk beinhaltet. Aus dem Digitalbild generiert das Offsetvorhersage-Neuronalnetzwerk auf Grundlage des Bildbearbeitungsvorganges, für den das Offsetvorhersage-Neuronalnetzwerk trainiert ist, eine Offsetvorhersage, die als Verschiebungsabbildung ausgebildet ist. Diese Verschiebungsabbildung ist aus Offsetvektoren gebildet, die eine Verschiebung von Bildpixeln des eingegebenen Digitalbildes an verschiedene bzw. andere Orte zum Durchführen des Bildbearbeitungsvorganges darstellen. Die Offsetvorhersage dient zudem als Grundlage für das Kopieren von Pixelwerten des Digitalbildes auf die von dem Vorgang betroffenen Bildpixel. Dies impliziert das Bestimmen von Offsetvektoren, die den von dem Bildbearbeitungsvorgang betroffenen Bildpixeln entsprechen. Des Weiteren werden die Pixelwerte der Bildpixel, die von den bestimmten Offsetvektoren dargestellt werden, auf die betroffenen Bildpixel abgebildet. Entsprechend dieser Abbildung werden die Pixelwerte der betroffenen Bildpixel eingestellt, was für die Durchführung des Bildbearbeitungsvorganges effektiv ist.
  • Die vorliegende Zusammenfassung bietet in vereinfachter Form eine Auswahl von Konzepten, die nachstehend in der Detailbeschreibung weiter beschrieben werden. Als solches soll die vorliegende Zusammenfassung wesentliche Merkmale des beanspruchten Erfindungsgegenstandes weder identifizieren, noch soll sie als Hilfe beim Bestimmen des Umfangs des beanspruchten Erfindungsgegenstandes verwendet werden.
  • Figurenliste
  • Die Patent- oder Anmeldungsakte enthält wenigstens eine in Farbe ausgeführte Zeichnungsfigur. Kopien der Veröffentlichung des Patentes oder der Patentanmeldung mit der farbigen Zeichnungsfigur / den farbigen Zeichnungsfiguren werden vom Amt auf Antrag und nach Zahlung der einschlägigen Gebühr zur Verfügung gestellt.
  • Die Detailbeschreibung erfolgt anhand der begleitenden Figuren.
    • 1 ist eine Darstellung einer Umgebung bei einer exemplarischen Implementierung, die für den Einsatz der hier beschriebenen Techniken betrieben werden kann.
    • 2 zeigt eine exemplarische Implementierung einer Farbcodierungsreferenz, die zur Visualisierung von Verschiebungsabbildungen zum Abbilden von Pixeln eines Eingabebildes auf die von einem Bildbearbeitungsvorgang betroffenen Pixel auf Grundlage vorhergesagter Pixeloffsets verwendet wird.
    • 3 zeigt ein Beispiel für lochhaltige Digitalbilder und entsprechende gefüllte Digitalbilder, die unter Verwendung vorhergesagter Pixeloffsets generiert werden, die eine Abbildung zwischen restlichen Pixeln der lochhaltigen Digitalbilder und Pixeln der Löcher angeben.
    • 4 zeigt eine exemplarische Implementierung, bei der ein Patchabgleichssystem ein Ausgabedigitalbild unter Verwendung vorhergesagter Pixeloffsets generiert, die eine Abbildung von Pixeln eines Eingabedigitalbildes auf Pixel angeben, die von einem Vorgang, der in Bezug auf das Eingabedigitalbild durchgeführt wird, betroffen sind.
    • 5 zeigt eine exemplarische Implementierung eines Patchabgleichsnetzwerkframeworks, das unter Verwendung des Deep Learning trainiert ist und das Offsetvorhersagen generiert, die als Verschiebungsabbildungen ausgebildet sind.
    • 6 zeigt eine Prozedur bei einer exemplarischen Implementierung, bei der ein Bildbearbeitungsvorgang an einem Digitalbild ausgeführt wird, indem Pixel des Digitalbildes auf die von dem Vorgang betroffenen Pixel entsprechend einer Offsetvorhersage, die als Verschiebungsabbildung ausgebildet ist, abgebildet werden.
    • 7 zeigt eine Prozedur bei einer exemplarischen Implementierung, bei der ein Netzwerkframework ausgebildet ist, um Bildbearbeitungsvorgänge unter Verwendung eines Patchabgleichens auszuführen, das auf Offsetvorhersagen beruht, die als von dem Framework generierte Verschiebungsabbildungen ausgebildet sind.
    • 8 zeigt ein exemplarisches System, das verschiedene Komponenten einer exemplarischen Vorrichtung beinhaltet, die als beliebiger Typ von Rechenvorrichtung, die anhand von 1 bis 7 beschrieben und/oder genutzt worden ist, implementiert sein kann, um Ausführungsformen der hier beschriebenen Techniken zu implementieren.
  • Detailbeschreibung
  • Übersicht
  • Das Bildpatchabgleichen wird in Verbindung mit verschiedenen Bildbearbeitungsvorgängen, so beispielsweise dem Bildneueinrichten (image retargeting) und dem Bildlochfüllen, verwendet. Allgemein impliziert das Patchabgleichen ein Kopieren von Werten aus einer Gruppe von Pixeln in einem Bild auf die von einem Vorgang betroffenen Pixel des Bildes. Herkömmliche Patchabgleichstechniken scheitern jedoch bei einigen Szenarien. Dies rührt daher, dass herkömmliche Patchabgleichstechniken auf wenig abstrakten (low-level) Pixelwerten anstatt auf semantischen Konzepten, die mittels Deep Learning gelernt werden können, beruhen. Üblicherweise versuchen derartige herkömmliche Patchabgleichstechniken, einen nächstgelegenen Patch (beispielsweise eine Gruppe von Pixeln) ausfindig zu machen, die Pixelwerte aufweisen, die mit einem Patch, der einem Bildbearbeitungsvorgang unterzogen wird, annähernd abgeglichen sind. Bei einigen Szenarien führt dieses bloße Abgleichen der nächstgelegenen Patches jedoch zu bearbeiteten Bildern, die semantisch nicht konsistent sind, was beispielsweise bei einem Szenario der Fall ist, das den Versuch impliziert, ein Loch zu füllen, das in der Nähe des Auges einer dargestellten Person befindlich ist. Entsprechend sind herkömmliche Patchabgleichstechniken zur Implementierung verschiedener Bildbearbeitungsvorgänge gegebenenfalls ungeeignet.
  • Um diese Probleme zu lösen, wird das Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes in einer Digitalmedienumgebung eingesetzt. Zunächst wird ein Digitalbild empfangen, bezüglich dessen ein Bildbearbeitungsvorgang durchgeführt werden soll. Exemplarische Bildbearbeitungsvorgänge, die unter Verwendung der beschriebenen Techniken implementiert sein können, beinhalten das Lochfüllen, das Bildneueinrichten (beispielsweise das Beschneiden bzw. Freistellen, Zoomen, Skalieren, Rückgängigmachen des Beschneidens bzw. Freistellens), das Vorhersagen des optischen Überganges zwischen zwei verschiedenen Bildern (beispielsweise Videoframes), das Vorhersagen eines zukünftigen Frames für Videoframes und dergleichen mehr. Dieses Bild kann bei Szenarien empfangen werden, bei denen der Nutzer die Durchführung des Vorganges, so beispielsweise das Neueinrichten eines Bildes, unter Verwendung einer Bildbearbeitungsanwendung, auswählt. Alternativ oder zusätzlich kann das Bild bei Szenarien empfangen werden, bei denen ein Rechenvorrichtungsmodul das Durchführen des Vorganges, also beispielsweise das Neueinrichten eines Bildes zur Objekterkennung, auswählt. In jedem Fall können Digitalbilder für ein Patchabgleichssystem bereitgestellt werden, das zum Ausführen von vielerlei Vorgängen verwendet wird, ohne vom Wesen oder Umfang der beschriebenen Techniken abzugehen.
  • Allgemein sind derartige Patchabgleichssysteme dafür konfiguriert, Digitalbilder auszugeben, die mittels eines Bearbeitungsvorganges, der ein Patchabgleichen impliziert, bearbeitet werden. Zu diesem Zweck kopiert das Patchabgleichssystem Pixelwerte von Gruppen von Pixeln eines Digitalbildes auf die von dem Vorgang betroffenen Pixel des Digitalbildes. Im Gegensatz zu herkömmlichen Techniken verwenden die beschriebenen Techniken jedoch das Maschinenlernen, wodurch das Patchabgleichen semantische Konzepte eines Bildes, so beispielsweise Gesichtsmerkmale, beibehält. Bei einer oder mehreren Implementierungen ist das Patchabgleichssystem dafür konfiguriert, ein Netzwerkframework aufzuweisen, das ein Offsetvorhersage-Neuronalnetzwerk beinhaltet, das für das Erkennen semantischer Konzepte durch Übermittlung an verschiedene Sätze von Trainingsbildern trainiert wird. Darüber hinaus wird das Offsetvorhersage-Neuronalnetzwerk für einen spezifischen Bildbearbeitungsvorgang trainiert, um Änderungen zu lernen, die an Bildern infolge der Bildbearbeitungsvorgänge auftreten, so beispielsweise Änderungen, die an Bildern infolge eines Lochfüllens auftreten, gegenüber Änderungen, die an Bildern infolge eines Beschneidens bzw. Freistellens auftreten. Um verschiedene Bildbearbeitungsvorgänge zu implementieren, können verschieden trainierte Offsetvorhersage-Neuronalnetzwerke eingesetzt werden.
  • Entsprechend den beschriebenen Techniken wird das Offsetvorhersage-Neuronalnetzwerk dafür trainiert, Offsetvorhersagen aus dem Digitalbild zu generieren, bezüglich dessen der Bildbearbeitungsvorgang durchgeführt wird. Diese Offsetvorhersagen sind Digitalcontent, der als Verschiebungsabbildungen (displacement maps) ausgebildet ist, die Offsetvektoren, so beispielsweise einen Vektor für jedes Pixel des Digitalbildes, beinhalten. Die Offsetvektoren stellen eine Verschiebung von Bildpixeln des eingegebenen Digitalbildes an verschiedene bzw. andere Orte zum Durchführen des Bildbearbeitungsvorganges dar. Diese Verschiebung kann unter Verwendung farbcodierter Visualisierungen visualisiert werden, die die Offsetvektoren unter Verwendung von Farben, die durch eine Farbcodierungsreferenz definiert werden, darstellt. Allgemein entspricht der Ort einer Farbe in der Farbcodierungsreferenz einem Vektor, der ein Bildpixel darstellt, das allgemein am selben Ort in dem Digitalbild befindlich ist. Eine Farbe in der oberen rechten Ecke der Farbcodierungsreferenz entspricht beispielsweise einem Vektor, der ein Bildpixel in der oberen rechten Ecke des Digitalbildes darstellt.
  • In jedem Fall dient die Offsetvorhersage als Grundlage für das Kopieren von Pixelwerten des Digitalbildes auf die von dem Vorgang betroffenen Bildpixel. Dies impliziert ein Bestimmen der Offsetpixel, die den von dem Bildbearbeitungsvorgang betroffenen Bildpixeln entsprechen. Bei dem Beispiel mit dem Lochfüllen impliziert dies ein Bestimmen derjenigen Offsetvektoren, die den Bildpixeln, die das Loch bilden, entsprechen. Hierbei werden die Pixelwerte der Bildpixel, die von den bestimmten Offsetvektoren dargestellt werden, auf die betroffenen Bildpixel abgebildet. Bei einer oder mehreren Implementierungen impliziert dies ein Anwenden der bestimmten Offsetvektoren auf das Digitalbild, um diejenigen Bildpixel, die die Vektoren darstellen, zu identifizieren. Auf Grundlage hiervon werden Pixelwerte auf die betroffenen Bildpixel abgebildet. Entsprechend dieser Abbildung werden die Pixelwerte der betroffenen Bildpixel eingestellt, was bei der Durchführung des Bildbearbeitungsvorganges effektiv ist.
  • Durch Einsatz eines Neuronalnetzwerkes, das auf Grundlage von Sätzen von Bildern trainiert ist, vermeidet das Patchabgleichssystem das Ausgeben von bearbeiteten Bildern mit Content, der semantisch inkonsistent ist. Das Patchabgleichssystem gibt die bearbeiteten Bilder zudem ohne Nachbearbeitungsvorgänge aus. Hierbei treten bei den Patchabgleichssystemen, die entsprechend den beschriebenen Techniken konfiguriert sind, keine Belastungen dahingehend auf, Nachbearbeitungsvorgänge durchführen zu müssen.
  • Begriffsbeschreibungen
  • Im Sinne des Vorliegenden bezeichnet der Begriff „Patchabgleichen“ eine oder mehrere Techniken zum Kopieren von Werten aus einer Gruppe von Pixeln in einem Bild auf andere Pixel jenes Bildes, beispielsweise auf Pixel des Bildes, die einem Bildbearbeitungsvorgang unterzogen werden. Unterschiede bei diesen Techniken beinhalten beispielsweise Unterschiede in der Art des Auswählens von Pixeln, aus denen die Werte kopiert werden.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „Patch“ (Flicken) eine Gruppe von Pixeln eines Bildes oder eine Gruppe von Patchpixeln, die um ein Bildpixel zentriert sind und die auf Grundlage nächstgelegener Bildpixel beispielsweise mittels Interpolation generiert werden.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „Bildpixel“ Pixel eines Digitalbildes. Auf ähnliche Weise bezeichnet der Begriff „Offsetvektoren“ Vektoren einer Offsetvorhersage, die als Verschiebungsabbildung ausgebildet ist. Bei einer oder mehreren Implementierungen beinhaltet die Verschiebungsabbildung Vektoren, die jedem Bildpixel des gerade bearbeiteten Digitalbildes entsprechen und die zudem den Ort eines abgebildeten Bildpixels angeben.
  • In der nachfolgenden Diskussion bezeichnet der Begriff „Loch“ eine Gruppe von zusammenhängenden Pixeln eines Digitalbildes mit Werten, die die Abwesenheit von dargestelltem Content angeben. Bei einem Beispiel können diese Pixel Nullwerte oder andere Werte, die keinen Content angeben, aufweisen. Bei einer oder mehreren Implementierungen können diese Pixel Werte aufweisen, die bewirken, dass die Pixel als weiß oder schwarz angezeigt werden. In der Praxis können die Pixel einfach weißen oder schwarzen Pixelwerten zugeordnet sein. In jedem Fall erscheinen diese Löcher inkonsistent zum restlichen Bildinhalt, der in den lochhaltigen Digitalbildern dargestellt ist. Löcher können auf Grundlage von vielerlei Vorgängen, wie hier erläutert wird, in Digitalbilder eingebracht werden.
  • Der Begriff „Nachbearbeitung“ bezeichnet Vorgänge, die in Bezug auf Digitalbilder durchgeführt werden, um den dargestellten Content jener Bilder zu modifizieren. Bei einem Beispiel beinhalten Nachbearbeitungsvorgänge das Zoomen, Beschneiden bzw. Freistellen, Skalieren, Mischen bzw. Blending, das Filtern, das selektive Farbändern und dergleichen mehr. Die Nachbearbeitung kann eine Vielzahl weiterer Bildmodifikationsvorgänge einschließen, ohne vom Wesen oder Umfang der beschriebenen Techniken abzugehen.
  • In der nachfolgenden Diskussion wird zunächst eine exemplarische Umgebung beschrieben, in der die hier beschriebenen Techniken zum Einsatz kommen können. Details und Prozeduren zu der exemplarischen Implementierung, die in der exemplarischen Umgebung wie auch in anderen Umgebungen durchgeführt werden können, werden sodann beschrieben. Als Folge dessen ist das Leistungsvermögen der exemplarischen Prozeduren nicht auf die exemplarische Umgebung beschränkt, und es ist die exemplarische Umgebung nicht auf das Leistungsvermögen der exemplarischen Prozeduren beschränkt.
  • Exemplarische Umgebung
  • 1 ist eine Darstellung einer Umgebung 100 bei einer exemplarischen Implementierung, die bei der Vorhersage von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes, wie hier beschrieben ist, betrieben werden kann. Die dargestellte Umgebung 100 beinhaltet einen Dienstanbietersystem 102, eine Clientvorrichtung 104 und ein Patchabgleichergenerierungssystem 106, die miteinander über ein Netzwerk 108 kommunikationstechnisch gekoppelt sind.
  • Rechenvorrichtungen, die dafür verwendbar sind, das Dienstanbietersystem 102, die Clientvorrichtung 104 und das Patchabgleichergenerierungssystem 106 zu implementieren, können auf vielerlei Arten konfiguriert sein. Eine Rechenvorrichtung kann beispielsweise als Desktopcomputer, Laptopcomputer, Mobilvorrichtung (beispielsweise als manuelle Konfiguration wie bei einem Tablet oder Mobiltelefon) und dergleichen mehr konfiguriert sein. Die Rechenvorrichtung kann daher von einer Vollressourcenvorrichtung mit wesentlichen Speicher- und Prozessorressourcen (beispielsweise PCs, Spielekonsolen) bis zu einer Niedrigressourcenvorrichtung mit begrenzten Speicher- und/oder Verarbeitungsressourcen (beispielsweise Mobilvorrichtungen) reichen. Zusätzlich kann eine Rechenvorrichtung mehrere verschiedene Vorrichtungen darstellen, so beispielsweise mehrere Server, die von einem Unternehmen genutzt werden, um Vorgänge „über die Cloud“, wie nachstehend anhand 8 noch beschrieben wird, durchzuführen.
  • Das Dienstanbietersystem 102 ist derart dargestellt, dass es ein Dienstverwaltermodul 110 beinhaltet, das eine Funktionalität zur Bereitstellung von Diensten, auf die über das Netzwerk 108 zugegriffen werden kann, für die Nutzer von Clientvorrichtungen aufweist. Das Dienstverwaltermodul 110 kann beispielsweise Content oder eine Funktionalität, auf die über das Netzwerk 108 seitens einer Anwendung 112 der Clientvorrichtung 104 zugegriffen werden kann, übermitteln. Die Anwendung 112 kann als netzwerkfähige Anwendung, als Browser, als native Anwendung und dergleichen mehr, die Daten von dem Dienstanbietersystem 102 über das Netzwerk 108 bezieht, konfiguriert sein. Die Daten können von der Anwendung 112 dafür verwendet werden, einen Nutzer der Clientvorrichtung 104 in die Lage zu versetzen, mit dem Dienstanbietersystem 102 zu kommunizieren, und zwar beispielsweise zum Empfangen von Anwendungsaktualisierungen und Merkmalen, wenn das Dienstanbietersystem 102 eine Funktionalität zum Verwalten von Contentbearbeitungsanwendungen bereitstellt.
  • Im Kontext der beschriebenen Techniken beinhaltet die Anwendung 112 eine Funktionalität zum Bearbeiten von Digitalcontent, so beispielsweise von Digitalbildern 114. Beim dargestellten Beispiel beinhaltet die Anwendung 112 einen Patchabgleicher 116, der wenigstens teilweise in der Hardware der Clientvorrichtung 104 implementiert ist, um teilweise Patches für wenigstens einen Bildbearbeitungsvorgang abzugleichen. Ein exemplarischer Bildbearbeitungsvorgang, der das Patchabgleichen impliziert, ist das Füllen von Löchern lochhaltiger Digitalbilder. Allgemein bezeichnet ein „Loch“ einen Bereich von zusammenhängenden Pixeln eines Digitalbildes mit Werten, die die Abwesenheit von dargestelltem Content angeben. In diesen Bereichen kann der dargestellte Content entfernt sein, weshalb die entsprechenden Pixel Nullwerte, Leerwerte, Werte für weiße Pixel, Werte für schwarze Pixel und dergleichen mehr aufweisen. Es kann ein Loch in dem Digitalbild 114 als Folge dessen vorhanden sein, dass ein Nutzer der Clientvorrichtung 104 mit der Anwendung 112 interagiert, um ein Objekt aus einem Digitalbild zu entfernen, um einen Abschnitt des Bildes zu löschen, um einen Abschnitt aus dem Bild herauszuschneiden und dergleichen mehr. Alternativ oder zusätzlich kann die Anwendung 112 Löcher in die Digitalbilder einbringen, und zwar beispielsweise durch automatisches Entfernen von Abschnitten eines Bildes beispielsweise auf Grundlage einer Nutzerauswahl zum Entfernen von bestimmtem Content (beispielsweise von Anstößigem, markengeschütztem Content, Flecken und dergleichen mehr), einer Nutzerauswahl eines Autokorrekturmerkmals und dergleichen mehr. Der Patchabgleicher 116 ist zudem dafür konfiguriert, Patches der Digitalbilder 114 abzugleichen, um Bilder neueinzurichten (beispielsweise Beschneiden bzw. Freistellen, Zoomen, Skalieren), den optischen Übergang zwischen zwei verschiedenen Bildern (beispielsweise Videoframes) vorherzusagen, ein zukünftiges Frame eines Videos vorherzusagen und dergleichen mehr.
  • In Bezug auf das Lochfüllen ist gezeigt, wie die Clientvorrichtung 104 an der Anzeigevorrichtung 118 ein lochhaltiges Bild 120 mit einem Loch 122 anzeigt. Der Patchabgleicher 116 ist dafür konfiguriert, das Loch 122 des lochhaltigen Bildes 120 zu füllen, um ein gefülltes Digitalbild 124 herzustellen. Anstelle des Loches 122 beinhaltet das gefüllte Digitalbild 124 abgebildeten Content 126. Allgemein umfasst der abgebildete Content 126 Pixel mit Werten, die von Pixeln des lochhaltigen Bildes 120 entsprechend dem dargestellten Bildinhalt, also den Nichtlochpixeln des lochhaltigen Bildes 120, abgebildet werden. Bei einer oder mehreren Implementierungen generiert der Patchabgleicher 116 einen vorhergesagten Offset von Pixeln aus dem lochhaltigen Bild 120 zu den Pixeln des Loches 122. Dieser vorhergesagte Offset ist als Verschiebungsabbildung ausgebildet, die Vektoren beinhaltet, die eine Verschiebung von Bildpixeln des lochhaltigen Bildes 120 der Eingabe für den Patchabgleicher 116 an verschiedene bzw. andere Orte zur Füllung des Loches 122 darstellen. Der vorhergesagte Offset kann unter Verwendung einer Visualisierung des vorhergesagten Offsets visualisiert werden, die entsprechend einer Farbcodierungsreferenz 128 farbcodiert ist, die eine einzige Farbe eines Farbmodells (beispielsweise des RGB-Farbmodells (Rot-Grün-Blau RGB)) den Pixeln eines Bildes, das bearbeitet werden soll, beispielsweise eines lochhaltigen Bildes, zuordnet. Bei einem Beispiel werden Pixeln, die annähernd oben rechts in dem lochhaltigen Bild 120 befindlich sind, Farben oben rechts in der Farbcodierungsreferenz 128 zugeordnet. Gibt die Visualisierung eine Farbe oben rechts in der Farbcodierungsreferenz 128 für ein Lochpixel an, so entspricht dies einem Vektor, der angibt, dass ein Pixelwert des Pixels oben rechts in dem lochhaltigen Bild auf das Lochpixel abgebildet wird.
  • Der Patchabgleicher 116 bestimmt die Pixelwerte durch Vorhersagen und Abbilden im Wesentlichen in Echtzeit, um den abgebildeten Content 128 zu generieren, weshalb der abgebildete Content 126 ohne Nachbearbeitung zum restlichen Content des lochhaltigen Bildes 120 konsistent ist. Der Patchabgleicher 116 kann das Patchabgleichen zudem einsetzen, um mehrere Löcher eines lochhaltigen Bildes zu füllen und um Löcher für Bilder mit einer Vielzahl von Auflösungen zu füllen. Mit anderen Worten, der Patchabgleicher 116 kann unter Verwendung eines vollständig faltungstechnischen End-to-End-Neuronalnetzwerkes implementiert sein, das ein lochhaltiges Bild (mit einem oder mehreren Löchern) als Eingabe nimmt und einen vorhergesagten Pixeloffset ausgibt, der als Verschiebungsabbildung ausgebildet ist, um ein gefülltes Digitalbild (in dem jedes der Löcher gefüllt ist) herzustellen. Im Kontext anderer Bildbearbeitungsvorgänge, die das Patchabgleichen einsetzen, kann der Patchabgleicher 116 unter Verwendung eines vollständig faltungstechnischen End-to-End-Neuronalnetzwerkes implementiert sein, das das gerade bearbeitete Bild (beispielsweise ein Bild, das neueingerichtet wird) als Eingabe nimmt und einen vorhergesagten Pixeloffset ausgibt, der als Verschiebungsabbildung ausgebildet ist, um das bearbeitete Bild (in dem der Bildinhalt entsprechend dem Vorgang neuausgerichtet ist) herzustellen. Zusätzlich oder alternativ kann das Neuronalnetzwerk als Feed-Forward-Neuronalnetzwerk konfiguriert sein.
  • Um die Clientvorrichtung 104 mit der Anwendung 112, die den Patchabgleicher 116 aufweist, zu versehen, kann das Dienstanbietersystem 102 das Patchabgleichergenerierungssystem 106 einsetzen. Obwohl die Funktionalität des Patchabgleichergenerierungssystems 106 derart dargestellt ist, dass sie von dem Dienstanbietersystem 102 getrennt ist, kann diese Funktionalität auch als Teil des Dienstanbietersystems 102 integriert sein, zwischen verschiedenen Entitäten verteilt sein und dergleichen mehr. Zusätzlich oder alternativ kann die Funktionalität des Patchabgleichergenerierungssystems 106 gänzlich oder in Teilen auch als Teil der Clientvorrichtung 104 integriert sein. Das Patchabgleichergenerierungssystem 106 beinhaltet ein Trainingsverwaltermodul 130, das wenigstens teilweise in der Hardware einer Rechenvorrichtung implementiert ist, um unter anderem Deep Learning zum Generieren der Patchabgleicher 132, die in dem Speicher 134 dargestellt sind, einzusetzen. Der Patchabgleicher 116 kann beispielsweise einem der Patchabgleicher 132 entsprechen, die unter Verwendung einer Funktionalität des Trainingsverwaltermoduls 130 generiert werden.
  • Zum Generieren der Patchabgleicher 132 wird das Trainingsverwaltermodul 130 dafür konfiguriert, ein Offsetvorhersage-Netzwerk 136 zu trainieren. Allgemein stellt das Offsetvorhersage-Netzwerk 136 eine Funktionalität zum Generieren einer Vorhersage dar, die eine Verschiebungsabbildung aus einem Eingabebild, beispielsweise dem lochhaltigen Bild 120, generiert. Allgemein verwenden diese Verschiebungsabbildungen Vektoren zur Darstellung einer Abbildung von Pixeln in dem Eingabebild auf einen Bildort, um Patches in Verbindung mit dem Ausführen eines Bildbearbeitungsvorganges, so beispielsweise dem Lochfüllen, dem Bildneueinrichten, dem Vorhersagen eines optischen Überganges und dergleichen mehr, abzugleichen. Des Weiteren werden die vorhergesagten Offsets zur Visualisierung auf Grundlage einer Farbcodierungsreferenz, so beispielsweise der Farbcodierungsreferenz 128, codiert.
  • Zur Versetzung der Offsetvektoren der generierten Vorhersagen generiert das Trainingsverwaltermodul 130 ein Offsetanwendungsmodul 138. Das Trainingsverwaltermodul 130 kombiniert das Offsetanwendungsmodul 138 mit dem Offsetvorhersage-Netzwerk 136 zur Bildung der Patchabgleicher 132. Allgemein stellt das Offsetanwendungsmodul 138 eine Funktionalität zum Abbilden von Pixeln eines Eingabebildes auf betroffene Pixelorte und so zur Herstellung eines Ausgabebildes dar. Dieses Abbilden beruht auf einer Offsetvorhersage, die als Verschiebungsabbildung, die von dem Offsetvorhersage-Netzwerk 136 generiert wird, ausgebildet ist. Mit anderen Worten, die Verschiebungsabbildung dient als Eingabe für das Offsetanwendungsmodul 138. Das Offsetanwendungsmodul 138 verarbeitet einen Vektor der Verschiebungsabbildung und bestimmt ein Pixel des Eingabebildes, das der Vektor darstellt. Auf Grundlage hiervon bildet das Offsetanwendungsmodul 138 einen Pixelwert des Eingabebildpixels, der von dem Vektor dargestellt wird, auf ein Pixel eines Ausgabebildes, das dem Vektor entspricht, ab. Das Offsetanwendungsmodul 138 passt die Pixelwerte des Ausgabebildes sodann entsprechend der Abbildung an. Auf diese Weise sind die Patchabgleicher 132 dazu in der Lage, ein Bild, das bearbeitet werden soll, als Eingabe zu empfangen und ein Bild, bezüglich dessen die Vorgänge ausgeführt worden sind, als Ausgabe bereitzustellen.
  • Mit Blick auf die Netzwerkarchitektur ist das Trainingsverwaltermodul 130 dazu in der Lage, das Offsetvorhersage-Netzwerk 136 dafür zu trainieren, Offsets für das Patchabgleichen in Verbindung mit verschiedenen Vorgängen, so beispielsweise dem Lochfüllen, dem Bildneueinrichten, dem Vorhersagen eines optischen Überganges und dergleichen mehr, vorherzusagen. Das Offsetvorhersage-Netzwerk 136 lernt sodann, die Offsetvorhersagen für verschiedene Vorgänge zu generieren, und zwar auf Grundlage der Daten, die während des Trainings durch das Trainingsverwaltermodul 130 an das Netzwerk übermittelt werden. Ein Vorteil der Offsetvorhersage besteht darin, dass ermöglicht wird, dass das Offsetvorhersage-Netzwerk 136 generiert wird, um Patches für verschiedene Vorgänge abzugleichen. Das beschriebene Framework, das das Offsetvorhersage-Netzwerk 136 und das Offsetanwendungsmodul 138 kombiniert, ist daher effizienter als herkömmliche Systeme, da das beschriebene Framework bei verschiedenen Vorgängen anwendbar ist, wobei das bloße Ändern der Trainingsdaten bei der Konfigurierung des Offsetvorhersage-Netzwerkes 136 bei der Verwendung in Verbindung mit verschiedenen Bildbearbeitungsvorgängen effektiv sein kann. Zusätzlich führen die Patchabgleicher 132 diese Bildbearbeitungsvorgänge ohne Nutzung von Nachbearbeitungstechniken, so beispielsweise einer Farbanpassung, aus. Die Patchabgleicher, die entsprechend den beschriebenen Techniken konfiguriert sind, stellen daher im Betrieb keine weitere Belastung für Rechenvorrichtungsressourcen beim Ausführen von Nachbearbeitungstechniken dar.
  • Nach erfolgter Betrachtung einer exemplarischen Umgebung folgt nunmehr die Erläuterung einiger exemplarischer Details zu den Techniken der Vorhersage von Patchabgleichsabbildungen unter Verwendung eines Neuronalnetzwerkes in einer Digitalmedienumgebung entsprechend einer oder mehreren Implementierungen.
  • Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes
  • 2 zeigt ein Beispiel 200 einer Farbcodierungsreferenz, die zum Visualisieren von Verschiebungsabbildungen zum Abbilden von Pixeln eines Eingabebildes auf diejenigen Pixel, die von einem Bildbearbeitungsvorgang betroffen sind, auf Grundlage von vorhergesagten Pixeloffsets verwendet werden. Insbesondere beinhaltet das dargestellte Beispiel die Farbcodierungsreferenz 128 von 1, dies jedoch detaillierter.
  • Allgemein umfasst die Farbcodierungsreferenz 128 mehrere Pixel. Ein Pixel der Farbcodierungsreferenz 128 wird einer eindeutigen Farbe im Vergleich zu jedem anderen Pixel der Farbcodierungsreferenz 128 zugeordnet. Die Pixel der Farbcodierungsreferenz 128 stellen zudem Pixel eines Digitalbildes, das in den Patchabgleicher 116 eingegeben wird, dar. Die Pixel der Farbcodierungsreferenz 128 können sodann unter Verwendung von Datenstrukturen derart implementiert werden, dass jedes Pixel der Farbcodierungsreferenz 128 einer dieser Datenstrukturen entspricht. Bei einer oder mehreren Implementierungen beinhaltet das Farbcodierungsreferenzpixeldatenschema Information, die die Farbe des jeweiligen Farbcodierungsreferenzpixels (beispielsweise RGB-Werte, einen hexadezimalen Wert, CMYK-Werte und dergleichen mehr) angibt, sowie Information, die diejenigen Pixel des Eingabebildes angibt, die von dem Farbcodierungsreferenzpixel dargestellt werden (beispielsweise einen Vektor, der das dargestellte Pixel angibt, und dergleichen mehr).
  • Bei einer oder mehreren Implementierungen entspricht die Information, die dem Pixel des Eingabebildes entspricht, einem Vektor. Bei einem Beispiel kann ein entsprechender Offsetvektor einer Verschiebungsabbildung eine Verschiebung eines Farbcodierungsreferenzpixels aus dem Zentrum der Farbcodierungsreferenz 128 angeben. Allgemein wird dieser Vektor im Zusammenhang mit dem Eingabebild verwendet, um das dargestellte Eingabebildpixel ausfindig zu machen, und zwar beispielsweise durch Bestimmen dessen, welches Pixel des Eingabebildes um den Betrag, der von dem Vektor angegeben wird, weg von dem Pixel, dem der Vektor entspricht, verschoben wird. Dieser Vektor kann zudem verwendet werden, um den Betrag anzugeben, um den ein Farbcodierungsreferenzpixel aus dem Zentrum der Farbcodierungsreferenz 128 verschoben wird, um die Farbe zur Visualisierung der Offsetvorhersage ausfindig zu machen.
  • Wie vorstehend angegeben, können die Farben der Farbcodierungsreferenzpixel unter Verwendung verschiedener Formate beschrieben werden, so beispielsweise RGB, hexadezimal, CMYK und dergleichen mehr. Allgemein ist die Farbcodierungsreferenz 128 dafür konfiguriert, gleichmäßig verteilte Pixel zu beinhalten, die einem Bereich von Farben entsprechen, der von der Farbcodierungsreferenz 128 angegeben wird. Man betrachte ein Beispiel, bei dem die Farbcodierungsreferenz 128 RGB-gefärbt ist. Bei diesem Beispiel können Pixel der Farbcodierungsreferenz 128 derart verteilt sein, dass sie das RGB-Farbmodell gleichmäßig darstellen. In jedem Fall sind die Visualisierungen, die die vorhergesagten Pixeloffsets angeben, auf Farben der Farbcodierungsreferenz 128 beschränkt.
  • Man betrachte hierbei das Farbcodierungsreferenzpixel 202 („CC-Referenzpixel 202“) des dargestellten Beispiels 200. In der Farbcodierungsreferenz 128 ist das CC-Referenzpixel 202 durch einen Kreis angegeben, der der Klarheit halber ein Einzelpixel der Farbcodierungsreferenz 128 darstellt. Eine Datenstruktur, die zur Implementierung des CC-Referenzpixels 202 verwendet werden kann, ist zudem dargestellt. Bei dem dargestellten Beispiel beinhaltet das CC-Referenzpixel 202 einen Farbwert 204 und eine Eingabebildreferenz 206. Gleichwohl können die Pixel der Farbcodierungsreferenz 128 auch auf andere Weise konfiguriert sein, ohne vom Wesen oder Umfang der hier beschriebenen Techniken abzugehen.
  • Mit Blick auf das dargestellte Beispiel 200 beschreibt der Farbwert 204 eine Farbe des CC-Referenzpixels 202 in der Farbcodierungsreferenz 128. Beim dargestellten Beispiel ist das CC-Referenzpixel 202 derart dargestellt, dass es grüne Farbe aufweist. Entsprechend beschreibt der Farbwert 204 diese grüne Farbe des CC-Referenzpixels 202. Das Offsetanwendungsmodul 138 bildet Vektoren der vorhergesagten Offsets, die unter Verwendung derselben grünen Farbe visualisiert werden, auf das CC-Referenzpixel 202 und nicht auf andere Pixel der Farbcodierungsreferenz 128 ab. Das Offsetanwendungsmodul 138 verwendet den Vektor zudem zum Bestimmen dessen, welches Pixel des Eingabebildes durch den Vektor dargestellt wird, und zwar derart, dass ein Pixelwert (beispielsweise ein oder mehrere Farbwerte) des dargestellten Pixels auf ein Pixel des Ausgabebildes, das dem Vektor entspricht, abgebildet werden kann.
  • Man betrachte in diesem Kontext die Eingabebildreferenz 206, die ein Pixel eines Eingabebildes, das das CC-Referenzpixel 202 darstellt, angibt. In dieser Darstellung 200 ist das CC-Referenzpixel 202 oben rechts in der Farbcodierungsreferenz 128 befindlich. Auf Grundlage hiervon gibt die Eingabebildreferenz 206 ein Pixel oben rechts in dem Eingabebild an. Wie vorstehend erwähnt worden ist, wird das Pixel des Eingabebildes durch einen Vektor beschrieben, und zwar beispielsweise durch einen Vektor, der auch zur Beschreibung der Verschiebung des CC-Referenzpixels 202 weg von dem CC-Zentralpixel 208 verwendet werden kann.
  • In jedem Fall identifiziert das Offsetanwendungsmodul 138 ein Pixel des Eingabebildes, das von dem Offsetvektor beschrieben wird. Dies kann auch in der Visualisierung einer Offsetvorhersage durch das CC-Referenzpixel 202 dargestellt werden. Augenscheinlich ist das Offsetanwendungsmodul 138 dazu in der Lage, Pixel des Eingabebildes zu identifizieren, die durch Pixel der Farbcodierungsreferenz 128 visualisiert werden, die wiederum Farben aufweisen, die nicht das Grün des CC-Referenzpixels 202 sind. Das Offsetanwendungsmodul 138 verwendet diese Information zur Abbildung von Werten der dargestellten Pixel des Eingabebildes auf Ausgabebildpixel, die von einem Vorgang, so beispielsweise dem Lochfüllen, betroffen sind. Man betrachte in diesem Kontext 3.
  • 3 zeigt ein Beispiel 300 für lochhaltige Digitalbilder und entsprechende gefüllte Digitalbilder, die unter Verwendung vorhergesagter Pixeloffsets generiert werden, die eine Abbildung zwischen restlichen Pixeln der lochhaltigen Digitalbilder und Pixeln der Löcher angeben.
  • Insbesondere beinhaltet das dargestellte Beispiel 300 lochhaltige Musterbilder 302, 304, 306, 308, 310, 312, 314, 316 mit Löchern 318, 320, 322, 324, 326, 328, 330, 332. Das dargestellte Beispiel 300 beinhaltet zudem Visualisierungen 334, 336, 338, 340, 342, 344, 346, 348, die Offsetvorhersagen angeben, die als Verschiebungsabbildungen ausgebildet sind, sowie gefüllte Musterbilder 350, 352, 354, 356, 358, 360, 362, 364. Entsprechend den beschriebenen Techniken ist der Patchabgleicher 116, der als Kombination des Offsetvorhersage-Netzwerks 136 und des Offsetanwendungsmoduls 138 ausgebildet ist, dafür konfiguriert, diese gefüllten Bilder aus den lochhaltigen Bildern zu generieren.
  • Ist beispielsweise das lochhaltige Bildmuster 302 gegeben, so setzt der Patchabgleicher 116 das Offsetvorhersage-Netzwerk 136 ein, um eine Offsetvorhersage zu generieren, die mit der Visualisierung 334 visualisiert wird. Der Patchabgleicher 116 stellt sodann das lochhaltige Musterbild 302 und die Offsetvorhersage als Eingabe für das Offsetanwendungsmodul 138 bereit. Mit dieser Eingabe arbeitet das Offsetanwendungsmodul 138, wie vorstehend und nachstehend beschrieben, um das gefüllte Musterbild 350 auszugeben, das lochfüllenden Content 366 anstelle des Loches 318 beinhaltet. Bei diesem Beispiel ist die Visualisierung 334 mit einem Kasten 368 bezeichnet, der den Pixeln des Loches 318 und den Pixeln des lochfüllenden Contents 366 entspricht. Zusätzlich entsprechen gefüllte Pixel 370 des lochfüllenden Contents 366 farbcodierten Offsetpixeln 372 der Visualisierung 334. Das Offsetanwendungsmodul 138 verwendet die durch die Visualisierung 334 visualisierten Vektoren zum Abbilden von Pixeln des lochhaltigen Musterbildes 302 auf die Pixel des Loches 318 und stellt so den lochfüllenden Content 366 her.
  • Zum Abbilden dieser Pixel bestimmt das Offsetanwendungsmodul 138 Vektoren, die durch die farbcodierten Offsetpixel 372 angegeben sind. Das Offsetanwendungsmodul 138 ist zudem dafür konfiguriert, Pixel der Farbcodierungsreferenz 128, die durch den Offsetvektor angegeben werden, zu identifizieren, um beispielsweise die Visualisierung 334 zu generieren. Bei dem dargestellten Beispiel 300 stellen Abgleichsfarbpixel 334 die Pixel der Farbcodierungsreferenz 128 dar, die mit Vektoren, die durch die farbcodierten Offsetpixel 372 angegeben sind, abgeglichen sind. Die Abgleichsfarbpixel 374 geben zudem Pixel des lochhaltigen Musterbildes 302 an. Die Abgleichsfarbpixel 374 sind nahe an der rechten Seite und genau über der vertikalen Mitte der Farbcodierungsreferenz 128 befindlich. Dieser Ort der Abgleichsfarbpixel 374 kann durch die Offsetvektoren, wie vorstehend beschrieben worden ist, beschrieben werden. In jedem Fall stellen die Abgleichsfarbpixel 374 Eingabebildpixel 376 nahe an der rechten Seite und genau über der vertikalen Mitte des lochhaltigen Musterbildes 302 dar. Das Offsetanwendungsmodul 138 kann die Eingabebildpixel 376 auf Grundlage der durch den Offsetvektor angegebenen Verschiebung identifizieren. Unter dieser Voraussetzung verwendet das Offsetanwendungsmodul 138 die Werte der Eingabebildpixel 376 zum Einstellen von Werten der gefüllten Pixel 370. Mit anderen Worten, die Pixelwerte der Eingabebildpixel 376 werden auf die gefüllten Pixel 370 abgebildet.
  • Die anderen gefüllten Bilder des dargestellten Beispiels 300 sind, obwohl nicht mit Bezugszeichen bezeichnet, ebenfalls mit jeweiligem lochfüllendem Content dargestellt. Der lochfüllende Content dieser Bilder wird von dem Patchabgleicher 116 auf dieselbe Weise, wie vorstehend beschrieben worden ist, generiert. Betrachtet werde nunmehr ein exemplarisches System entsprechend einer oder mehreren Implementierungen.
  • 4 zeigt eine exemplarische Implementierung 400, bei der ein Patchabgleichssystem ein Ausgabedigitalbild unter Verwendung vorhergesagter Pixeloffsets generiert, die eine Abbildung zwischen Pixeln eines Eingabedigitalbildes und Pixeln, die von einem Vorgang betroffen sind, der in Bezug auf das Eingabedigitalbild durchgeführt wird, angeben. Bei dem dargestellten Beispiel ist der Patchabgleicher 116 von 1 detaillierter dargestellt und dient als wenigstens ein Teil des Patchabgleichssystems. Der Patchabgleicher 116 ist zudem derart dargestellt, dass er das Offsetvorhersage-Netzwerk 136 und das Offsetanwendungsmodul 138 beinhaltet. Wie vorstehend angegeben worden ist, bildet das Trainingsverwaltermodul 130 den Patchabgleicher 116 als Kombination aus beiden.
  • Bei dem Beispiel 200 ist der Patchabgleicher 116 derart gezeigt, dass er ein Eingabedigitalbild 402 bezieht. Das Eingabedigitalbild 402 entspricht einem Bild, bezüglich dessen ein Bildbearbeitungsvorgang, der ein Patchabgleichen impliziert, durchgeführt wird. Bei einem Beispiel kann ein Nutzer der Clientvorrichtung 104 eine Option über die Anwendung 112 auswählen, um einen Vorgang, der das Patchabgleichen impliziert, in Bezug auf das Eingabedigitalbild 402 durchzuführen, so beispielsweise das Füllen eines Loches des Eingabedigitalbildes 402, das Neuausrichten (beispielsweise Beschneiden bzw. Freistellen, Zoomen, Skalieren) des Eingabedigitalbildes 402, das Vorhersagen eines optischen Überganges zwischen dem Eingabedigitalbild 402 und einem anderen Digitalbild (beispielsweise dort, wo das Eingabedigitalbild 402 und das andere Digitalbild Frames eines Videos entsprechen), das Vorhersagen eines zukünftigen Frames eines Videos aus dem Eingabedigitalbild 402 und dergleichen mehr.
  • Allgemein betreffen diese Vorgänge Pixel des Eingabedigitalbildes 402. Bei einem Beispiel des Lochfüllens sind beispielsweise diejenigen Pixel, die einem Loch des Eingabedigitalbildes 402 entsprechen, von dem Vorgang betroffen. Es werden also beispielsweise denjenigen Pixeln, die dem Loch entsprechen, Werte zum Füllen des Loches mit Content zugewiesen. In diesem Kontext ist der Patchabgleicher 116 zudem derart dargestellt, dass er ein Vorgangsmaskenmodul 404 aufweist, das eine Funktionalität zum Generieren der Bearbeitungsvorgangsmaske 406 darstellt. Die Bearbeitungsvorgangsmaske 406 ist dafür konfiguriert, diejenigen Pixel in dem Eingabedigitalbild 402 anzugeben, die von dem Vorgang betroffen sind, der in Bezug auf das Eingabedigitalbild 402 durchgeführt wird.
  • Um dies anzugeben, kann die Bearbeitungsvorgangsmaske 406 zudem einen Wert für jedes Pixel des Eingabedigitalbildes 402 beinhalten, der angibt, ob das Pixel von dem Vorgang betroffen ist oder nicht. Beinhalten kann die Bearbeitungsvorgangsmaske 406 beispielsweise den Wert „1“ für Pixel des Eingabedigitalbildes 402, die von dem Vorgang nicht betroffen sind, und den Wert „0“ für Pixel des Eingabedigitalbildes 402, die von dem Vorgang betroffen sind, also beispielsweise Pixel, die einem zu füllenden Loch des Eingabedigitalbildes 402 entsprechen. Beinhalten kann die Bearbeitungsvorgangsmaske 406 alternativ den Wert „0“ für Pixel des Eingabedigitalbildes 402, die von dem Vorgang nicht betroffen sind, und den Wert „1“ für Pixel des Eingabedigitalbildes 402, die von dem Vorgang betroffen sind. Die Bearbeitungsvorgangsmaske 406 kann die betroffenen Pixel des Eingabedigitalbildes 402 auf verschiedene Arten angeben, ohne vom Wesen oder Umfang der hier beschriebenen Techniken abzugehen.
  • In jedem Fall empfängt das Offsetvorhersage-Netzwerk 136 das Eingabedigitalbild 402 und die Bearbeitungsvorgangsmaske 406 als Eingabe. Das Offsetvorhersage-Netzwerk 136 generiert eine Offsetvorhersage 408 als Verschiebungsabbildung aus dem Eingabedigitalbild 402 und der Bearbeitungsvorgangsmaske 406. Die Offsetvorhersage 408 beinhaltet eine Offsetvorhersage 410 des betroffenen Pixels. Die Offsetvorhersage 410 des betroffenen Pixels entspricht den Pixeln des Eingabedigitalbildes 402, die von dem Vorgang betroffen sind. Insbesondere entspricht die Offsetvorhersage 410 des betroffenen Pixels eines bestimmten Pixels einer Abbildung eines Quellenpixels des Eingabedigitalbildes 402 auf das bestimmte Pixel. Man betrachte ein Beispiel, bei dem der durchgeführte Vorgang ein Vorgang des Lochfüllens ist. Bei diesem Beispiel beinhaltet die Offsetvorhersage 410 des betroffenen Pixels für Pixel eines bestimmten Loches Offsetvektoren, die Pixel des Eingabedigitalbildes 402 angeben. Diese Abbildung wird dafür verwendet, Werte der Pixel des bestimmten Loches, die leeren und/oder entfernten Content angeben, derart zu modifizieren, dass sie anstatt dessen abgebildete Patches aus dem Eingabedigitalbild 402 angeben. Insbesondere generiert das Offsetvorhersage-Netzwerk 136 die vorhergesagten Offsets auf Grundlage der dargestellten Contenteigenschaften, die während des Trainings gelernt werden, und teilweise auf Grundlage von Pixelwerten der Pixel des Eingabedigitalbildes 402, die von dem Vorgang nicht betroffen sind.
  • Das Offsetanwendungsmodul 138 empfängt die Offsetvorhersage 408 mit der Offsetvorhersage 410 des betroffenen Pixels. Das Offsetanwendungsmodul 138 gleicht Patches des Eingabedigitalbildes 402 mit den betroffenen Pixeln ab, um die Werte jener Pixel auf Grundlage der Offsetvektoren, die in der Offsetvorhersage 408 beinhaltet sind, zu modifizieren. Das Offsetanwendungsmodul 138 kann diese Patches abgleichen, wie detailliert anhand 2 und 3 beschrieben worden ist. Das Offsetanwendungsmodul 138 stellt das Ausgabedigitalbild 412 her, indem Werte von Pixeln des Eingabedigitalbildes 402 auf diejenigen Pixel abgebildet werden, die von dem Bildbearbeitungsvorgang betroffen sind, sowie entsprechend der Offsetvorhersage 408 und insbesondere entsprechend der Offsetvorhersage 410 des betroffenen Pixels. Gerade durch das Generieren der Offsetvorhersage 408 für einen gegebenen Vorgang und das Abbilden von Werten auf Pixel, die von dem Vorgang betroffen sind, entsprechend dem Offset kann der Patchabgleicher 116 das Ausgabedigitalbild 412 ohne Nachbearbeitung, also beispielsweise Mischen bzw. Blending, Farbanpassung und dergleichen mehr, ausgeben.
  • Um Eigenschaften dieser verschiedenen Vorgänge zu lernen und daher Offsetvorhersagen als Verschiebungsabbildungen zu generieren, kann das Trainingsverwaltermodul 130 das Offsetvorhersage-Netzwerk 136 dadurch trainieren, dass vorgangsspezifische Trainingsbilder an es übermittelt werden. Das Framework des Offsetvorhersage-Netzwerkes 136 unterstützt diesen vorgangsspezifischen Typ von Training. Das vorgangsspezifische Training, das von dem Framework unterstützt wird, ermöglicht zudem, dass Offsetvorhersage-Netzwerke die Offsetvorhersagen generieren, um verschiedene Bildbearbeitungsvorgänge auszuführen. Zur weiteren Erläuterung des Netzwerkes entsprechend einer oder mehreren Implementierungen betrachte man nun 5.
  • 5 zeigt ein Beispiel 500 für eine Implementierung eines Patchabgleichsnetzwerkframeworks, das unter Verwendung des Deep Learning trainiert ist und das Offsetvorhersagen, die als Verschiebungsabbildungen ausgebildet sind, generiert. Entsprechend den beschriebenen Techniken stellt das dargestellte Beispiel 500 ein vollständig faltungstechnisches Netzwerkframework dar.
  • Das dargestellte Beispiel 500 beinhaltet ein lochhaltiges Eingabedigitalbild 502, das als Eingabe für das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 dient. Bei einer oder mehreren Implementierungen ist das Offsetvorhersage-Netzwerk 136 als vollständig faltungstechnisches Offsetvorhersage-Neuronalnetzwerk 504 konfiguriert und entspricht diesem daher. Des Weiteren kann das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 als Feed-Forward-Neuronalnetzwerk konfiguriert sein. Bei einer oder mehreren Implementierungen beinhaltet das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 Zwischenstreckungsfaltungsschichten (intermediate dilated convolution layers). Das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 beinhaltet beispielsweise vier derartige Streckungsfaltungsschichten. Das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 weist zudem Kanäle auf, deren Anzahl in Abhängigkeit vom Trainingsdatensatz variiert, also beispielsweise davon abhängig ist, ob der Datensatz Bilder, die zum Trainieren des Netzwerkes für Vorgänge des Lochfüllens ausgewählt sind, Bilder, die zum Trainieren des Netzwerkes für Vorgänge des Bildneueinrichtens ausgewählt sind, und dergleichen mehr umfasst. Trotz dieser Variation kann das Trainingsverwaltermodul 130 dafür konfiguriert sein, diese Kanalnummern in Sätzen auszuwählen, also beispielsweise in Sätzen von {32, 64, 128, 256}. Zusätzlich konfiguriert das Trainingsverwaltermodul 130 das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 mit vollständig verbundenen Schichten an einem Ende bei Konfigurationen mit Diskriminatornetzwerk.
  • Des Weiteren stellt das dargestellte Beispiel 500 Visualisierungen der Offsetvorhersage 506 und der Offsetvorhersage 508 des betroffenen Pixels dar. Die Offsetvorhersage 508 des betroffenen Pixels umfasst einen Abschnitt der Offsetvorhersage 506, der betroffenen Pixeln 510 (beispielsweise dem Loch) des lochhaltigen Eingabedigitalbildes 502 entspricht. Die Visualisierung der Offsetvorhersage 508 des betroffenen Pixels ist entsprechend den beschriebenen Techniken (beispielsweise entsprechend der Farbcodierungsreferenz 128) farbcodiert und gibt die Verschiebungsabbildung an, die von dem vollständig faltungstechnischen Offsetvorhersage-Neuronalnetzwerk 504 ausgegeben wird. Insbesondere wird die Offsetvorhersage 508 des betroffenen Pixels von einer Ausgabeschicht des vollständig faltungstechnischen Offsetvorhersage-Neuronalnetzwerkes 504 ausgegeben.
  • Im Vergleich hierzu entspricht das gefüllte Digitalbild 512 der Ausgabe des Offsetanwendungsmoduls 138 und daher der Ausgabe des Netzwerkframeworks. Entsprechend ist das dargestellte Netzwerkframework ein End-to-End-Deep-Neuronalnetzwerk, das Bilder, die gerade bearbeitet werden, als Eingabe nimmt und Bilder ausgibt, an denen der Vorgang ausgeführt worden ist. Insbesondere wird der Bildbearbeitungsvorgang ausgeführt, indem die vorhergesagten Offsets an Pixeln, die von dem Vorgang betroffen sind, ausgeführt werden. Das auf diese Weise erfolgende Konfigurieren des Frameworks ermöglicht, dass das Framework dafür eingesetzt werden kann, Bildbearbeitungsvorgänge auszuführen, um bearbeitete Digitalbilder herzustellen, die randkonsistenter, semantisch vernünftiger und optisch ansprechender sind, als dies bei herkömmlichen Techniken der Fall ist. Diese Konfigurierung stellt Bilder zudem effizienter als herkömmliche Techniken, also beispielsweise weniger zeit- und ressourcenintensiv, her. Bei einer oder mehreren Implementierungen generiert und trainiert das Trainingsverwaltermodul 130 das Framework des dargestellten Beispiels 500 folgendermaßen.
  • Entsprechend den beschriebenen Techniken generiert das Trainingsverwaltermodul 130 das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 auf Grundlage eines differenzierbaren Patchabgleichskerns (patch matching kernel). Hierbei stellt das dargestellte Netzwerkframework 500 eine stabilere Konvergenz als herkömmliche Techniken auf Grundlage eines generativen adversativen Netzwerkes (generative adversarial network) bereit. Daher wird das dargestellte Netzwerkframework ohne Einsatz von generativen adversativen Trainingstechniken trainiert. Während des Trainings konfiguriert das Trainingsverwaltermodul 130 das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 dafür, Offsetvorhersagen entsprechend einer patchbasierten Zielfunktion (objective function) zu generieren. Als Teil hiervon baut das Trainingsverwaltermodul 130 eine patchbasierte Trainingsdatenstruktur für jedes der Trainingsbilder auf.
  • In der nachfolgenden Diskussion ist die Höhe eines Trainingsbildes mit dem Term H bezeichnet, während die Breite des Trainingsbildes mit dem Term W bezeichnet wird. Bei einer oder mehreren Implementierungen werden Pixelfarben der Trainingsbilder unter Verwendung des RGB-Farbmodells (Rot-Grün-Blau RGB) dargestellt und weisen daher Werte für drei Kanäle auf. Zusätzlich kann das Trainingsverwaltermodul 130 für jedes Pixel eines Trainingsbildes einen exakten Patch bestimmen, der an dem Pixel zentriert ist. Bei einer oder mehreren Implementierungen weist der bestimmte exakte Patch die Dimensionen von 7 mal 7 auf. Bei diesem Beispiel kann das Trainingsverwaltermodul 130 daher eine patchbasierte Trainingsdatenstruktur für ein Bild mit den folgenden Dimensionen aufbauen: H × W × 7 × 7
    Figure DE102018006243A1_0001
  • Bei einer oder mehreren Implementierungen entfernt das Trainingsverwaltermodul 130 willkürlich Ground-Truth-Patches aus Trainingsbildern, um Löcher in den Trainingsbildern herzustellen, und zwar beispielsweise dann, wenn das Trainingsverwaltermodul 130 das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 für das Lochfüllen trainiert. Das Trainingsverwaltermodul 130 ist dafür konfiguriert, die Trainingsbilder auf andere Weise in Abhängigkeit von einem Vorgang zu modifizieren, für den das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 trainiert wird. Mit Blick auf das Beispiel des Lochfüllens stellt das Trainingsverwaltermodul 130 indes lochhaltige Trainingsbilder für das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 bereit. Während des Trainings stellt das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 Offsetvorhersagen her, die als Verschiebungsabbildungen für diese lochhaltigen Trainingsbilder ausgebildet sind, wobei das Offsetanwendungsmodul 138 gefüllte Digitalbilder entsprechend den Offsetvorhersagen herstellt.
  • Das Trainingsverwaltermodul 130 ist dafür konfiguriert, diese gefüllten Bilder, die von dem Framework ausgegeben werden, mit den ursprünglichen Trainingsbildern, also beispielsweise den Bildern, aus denen die Ground-Truth-Patches, entfernt sind, zu vergleichen. Zusätzlich ist das Trainingsverwaltermodul 130 dafür konfiguriert, den generierten Content auf Grundlage des Abbildens von Pixeln auf die Löcher entsprechend den Offsetvorhersagen zum Füllen der Löcher mit den Ground-Truth-Patches, die zur Herstellung der Löcher entfernt worden sind, zu vergleichen. Bei einer oder mehreren Implementierungen vergleicht das Trainingsverwaltermodul 130 die Ground-Truth-Patches mit dem lochfüllenden Content (oder dem Content der betroffenen Pixel für andere Vorgänge) auf Grundlage eines I1-Verlustes. Bei einem Beispiel kann dieser Verlust einem I1-Abstand entsprechen, der sich auf Grundlage von H × W × 7 × 7 Patches der ursprünglichen Trainingsbilder und H × W × 7 × 7 Patches, die aus den Ausgabebildern, die sich aus den Offsetvorhersagen ergeben, extrahiert werden, ergibt. Das Trainingsverwaltermodul 130 stellt eine Rückmeldung für das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 mittels Rückverfolgung (back propagation) auf Grundlage des berechneten I1-Abstandes bereit. Die Verwendung der Zielfunktion, die die H × W × 7 × 7 Patches impliziert, ist zudem beim Verbessern der Schärfe der Bilder, die von dem vollständig faltungstechnischen Offsetvorhersage-Neuronalnetzwerk 504 ausgegeben werden, effektiv. Mit anderen Worten, die Verwendung der H × W × 7 × 7 Patches ist beim Herstellen von Bildern effektiv, die weniger verschwommen sind, als dies bei Techniken der Fall ist, die H × W Patches verwenden.
  • Des Weiteren ist das Trainingsverwaltermodul 130 dafür konfiguriert, einen Rückverfolgungsalgorithmus (back-propagation algorithm) einzusetzen, um das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 zu trainieren. Für den Einsatz derartiger Rückverfolgungsalgorithmen verwendet das Trainingsverwaltermodul 130 eine differenzierbare Technik zum Abtasten (sample) von Pixeln der Offsetvorhersagen, die während des Trainings generiert werden. Bei einer oder mehreren Implementierungen tastet das Trainingsverwaltermodul 130 diese Pixel unter Verwendung von Float-Werten der Offsets, die von dem vollständig faltungstechnischen Offsetvorhersage-Neuronalnetzwerk 504 ausgegeben werden, und einer bilinearen Interpolation ab.
  • Allgemein trainiert das Trainingsverwaltermodul 130 das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 dafür, Offsetvorhersagen zu generieren, die bei Anwendung auf die Eingabebilder zu Ausgabebildern mit randkonsistentem, semantisch vernünftigem und optisch ansprechendem Content führen. Durch den Trainingsprozess verbessert das Trainingsverwaltermodul 130 die ausgegebenen Offsetvorhersagen, sodass die Ausgabebilder nach dem Training einen Content aufweisen, der randkonsistenter, semantisch vernünftiger und optisch ansprechender ist, als dies bei Bildern der Fall ist, die zu Beginn des Trainings ausgegeben werden. Um dies zu bewerkstelligen, nutzt das Trainingsverwaltermodul 130 einen Operator, um die Offsetvorhersagen auf die ursprünglichen Trainingsbilder, beispielsweise vor Einbringung von Löchern, anzuwenden. Bei einer oder mehreren Implementierungen setzt das Trainingsverwaltermodul 130 einen Abtastkern (sampling kernel) als derartigen Operator ein.
  • Bei der Diskussion eines exemplarischen Abtastkerns bezeichnet der Term oi,j einen Offset eines Bildpixels, das an der x-Koordinate i und der y-Koordinate j befindlich ist. Bei einer oder mehreren Implementierungen berechnet das Trainingsverwaltermodul 130 den Offset oi,j für das Pixel, das bei (i, j) befindlich ist, durch Interpretieren einer bilinearen Interpolation nahegelegener Pixel. Bei der vorliegenden Diskussion bezeichnet der Term I einen Boden (floor) des Offsets o, wobei l = floor(o) gilt. Des Weiteren ist der Term u gleichwertig zu „Offsetboden I plus 1, sodass u = l + 1 gilt. Der Term „diff“ bezeichnet die Differenz zwischen dem Offset o und dem Offsetboden I, wobei diff = o - l gilt. Der Term „neg_dift“ bezeichnet die Differenz zwischen „1 und der Offset-und-Boden-Differenz „diff“, sodass neg_diff = 1,0 - diff gilt. Hierbei setzt das Trainingsverwaltermodul 130 bei einer oder mehreren Implementierungen den nachfolgenden Abtastkern ein. S ( o ) = x l × n e g _ d i f f w × n e g _ d i f f h + x u × d i f f w × d i f f h + x l h , u w × n e g _ d i f f h × d i f f w + x u h , l w × d i f f h × n e g _ d i f f w
    Figure DE102018006243A1_0002
  • Hierbei bezeichnet der Term S(o) das Pixelabtasten des Offsets o. Durch Verwendung dieses Abtastkerns setzt das Trainingsverwaltermodul 130 ein differenzierbares Abtasten der Pixel der Offsetvorhersagen, die während des Trainings generiert werden, ein. Gerade durch dieses differenzierbare Abtasten der Offsetvorhersage trainiert das Trainingsverwaltermodul 130 das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 vollständig im End-to-End-Sinne.
  • Nach erfolgter Diskussion exemplarischer Details zu den Techniken des Vorhersagens von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes werden nunmehr einige exemplarische Prozeduren zur Darstellung zusätzlicher Aspekte der Techniken betrachtet.
  • Exemplarische Prozeduren
  • Der vorliegende Abschnitt beschreibt exemplarische Prozeduren zum Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes in einer Digitalmedienumgebung bei einer oder mehreren Implementierungen. Aspekte der Prozeduren können in Hardware, Firmware oder Software oder auch in einer Kombination hieraus implementiert sein. Die Prozeduren sind als Satz von Blöcken gezeigt, die Vorgänge spezifizieren, die von einer oder mehreren Vorrichtungen durchgeführt werden und die nicht notwendigerweise auf diejenigen Reihenfolgen beschränkt sind, die zum Durchführen der Vorgänge durch die jeweiligen Blöcke gezeigt sind. Bei wenigstens einigen Implementierungen werden die Prozeduren von einer geeignet konfigurierten Vorrichtung, so beispielsweise der Clientvorrichtung 104 von 1, durchgeführt, die sich eines Patchabgleichers 116 oder eines Patchabgleichergenerierungssystems 106, das das Trainingsverwaltermodul 130 verwendet, bedient.
  • 6 zeigt eine exemplarische Prozedur 600, bei der ein Bildbearbeitungsvorgang an einem Digitalbild ausgeführt wird, indem Pixel des Digitalbildes auf diejenigen Pixel, die von dem Vorgang betroffen sind, entsprechend einer Offsetvorhersage, die als Verschiebungsabbildung ausgebildet ist, abgebildet werden.
  • Es wird ein Digitalbild empfangen, bezüglich dessen ein Bildbearbeitungsvorgang durchgeführt werden soll (Block 602). Bei einem Beispiel bezieht der Patchabgleicher 116 das lochhaltige Musterbild 302 mit dem Loch 318. Bei diesem Beispiel bezieht der Patchabgleicher 116 das lochhaltige Musterbild 302, um ein Lochfüllen als Bildbearbeitungsvorgang durchzuführen. Obwohl die Prozedur 600 anhand des Beispiels „Lochfüllen“ erläutert wird, sollte einsichtig sein, dass der Bildbearbeitungsvorgang verschiedenen Vorgängen entsprechen kann, ohne vom Wesen oder Umfang der hier beschriebenen Techniken abzugehen, so beispielsweise dem Bildneueinrichten (beispielsweise Beschneiden bzw. Freistellen, Zoomen, Skalieren), dem Vorhersagen eines optischen Überganges zwischen Videobildern, dem Vorhersagen zukünftiger Frames eines Videos aus dem empfangenen Digitalbild und dergleichen mehr.
  • Das Digitalbild wird an ein Patchabgleichsframework übermittelt, das ein Offsetvorhersage-Neuronalnetzwerk und ein Offsetanwendungsmodul kombiniert (Block 604). Bei einem Beispiel übermittelt der Patchabgleicher 116 das lochhaltige Musterbild 302 an ein Patchabgleichsframework, das das Offsetvorhersage-Netzwerk 136 und das Offsetanwendungsmodul 138 kombiniert. Das Offsetvorhersage-Netzwerk 136 und das Offsetanwendungsmodul 138 können von dem Trainingsverwaltermodul 130 kombiniert werden.
  • Eine Offsetvorhersage, die als Verschiebungsabbildung ausgebildet ist, wird von dem Offsetvorhersage-Neuronalnetzwerk des Patchabgleichsframeworks generiert (Block 606). Entsprechend den hier erläuterten Prinzipien umfasst die Verschiebungsabbildung Offsetvektoren, die eine Verschiebung von Bildpixeln des eingegebenen Digitalbildes an verschiedene bzw. andere Orte zur Durchführung des Bildbearbeitungsvorganges umfasst. Bei einem Beispiel generiert das Offsetvorhersage-Netzwerk 136 die Offsetvorhersage, die durch die Visualisierung 334 angegeben ist. Die Offsetvektoren der von der Visualisierung 334 angegebenen Offsetvorhersage stellen Pixel des lochhaltigen Musterbildes 302 dar. Die Vektoren, die von den farbcodierten Offsetpixeln 332 angegeben werden, stellen beispielsweise Eingabebildpixel 376 dar. Die Pixel des lochhaltigen Bildmusters 302, die die Farben der Visualisierung darstellen, sind durch die Farbcodierungsreferenz 128 definiert.
  • Die Offsetvektoren der Offsetvorhersage, die den von dem Bildbearbeitungsvorgang betroffenen Bildpixeln entsprechen, werden bestimmt (Block 608). Bei einem Beispiel bestimmt das Offsetanwendungsmodul 138, dass die durch den Kasten 368 der Visualisierung 334 angegebenen Vektoren den Pixeln des Loches 318 entsprechen. Diese Offsetvektoren beinhalten diejenigen Vektoren, die durch die farbcodierten Offsetpixel 372 der Visualisierung 334 angegeben werden. Bei diesem Beispiel sind die Pixel des Loches 318 diejenigen Bildpixel, die von dem Bildbearbeitungsvorgang, also beispielsweise dem Vorgang des Lochfüllens, betroffen sind.
  • Pixelwerte der Bildpixel, die durch die Vektoren dargestellt werden, werden von dem Offsetanwendungsmodul auf die betroffenen Bildpixel abgebildet (Block 610). Bei einem Beispiel identifiziert das Offsetanwendungsmodul 138 die Eingabebildpixel 376 durch Verweisen auf die Vektoren, die in der Visualisierung 334 durch die farbcodierten Offsetpixel 372 angegeben sind. Auf Grundlage hiervon bildet das Offsetanwendungsmodul 138 Pixelwerte der Eingabebildpixel 376 auf die gefüllten Pixel 370 ab.
  • Die Pixelwerte der betroffenen Bildpixel werden von dem Offsetanwendungsmodul auf die abgebildeten Pixelwerte eingestellt (Block 612). Bei einem Beispiel stellt das Offsetanwendungsmodul 138 Werte der Pixel des Loches 318 auf die bei Block 610 abgebildeten Pixelwerte ein. Ein bearbeitetes Digitalbild, an dem der Bildbearbeitungsvorgang durchgeführt worden ist, wird als Ausgabe von dem Patchabgleichsframework empfangen (Block 614). Entsprechend den hier erläuterten Prinzipien wird der Bildbearbeitungsvorgang in Bezug auf das Digitalbild durchgeführt, um das bearbeitete Digitalbild zu generieren, indem die Pixelwerte der betroffenen Pixel auf die abgebildeten Pixelwerte eingestellt werden. Bei einem Beispiel empfängt die Anwendung 112 das gefüllte Musterbild 350 als Ausgabe von dem Patchabgleicher 116. Das vorerwähnte Lochfüllen ist in Bezug auf das lochhaltige Musterbild 302 durchgeführt worden, um das gefüllte Musterbild 350 herzustellen, indem die Werte der betroffenen Pixel bei Block 612 eingestellt werden. Das gefüllte Musterbild 350 wird von dem Patchabgleicher 116 ohne Nachbearbeitung des gefüllten Musterbildes 350 aus der Ausgabe durch das Patchabgleichsframework empfangen. Auf diese Weise kann das Patchabgleichsframework als vollständig faltungstechnisches End-to-End-Framework gedeutet werden. Das Patchabgleichsframework kann zudem derart implementiert sein, dass das jeweilige Neuronalnetzwerk ein Feed-Forward-Neuronalnetzwerk ist.
  • 7 stellt eine exemplarische Prozedur 700 dar, bei der ein Netzwerkframework gebildet ist, um Bildbearbeitungsvorgänge unter Verwendung eines Patchabgleichens auszuführen, das auf Offsetvorhersagen beruht, die als von dem Framework generierte Verschiebungsabbildungen ausgebildet sind.
  • Ein Offsetvorhersage-Neuronalnetzwerk wird mit einem Offsetanwendungsmodul kombiniert, um ein Patchabgleichsframework zu bilden (Block 702). Bei einem Beispiel kombiniert das Trainingsverwaltermodul 130 das vollständig faltungstechnische Offsetvorhersage-Neuronalnetzwerk 504 mit dem Offsetanwendungsmodul 138, um das Patchabgleichsframework des dargestellten Beispiels 500 zu bilden.
  • Es werden Trainingsbilder auf Grundlage eines bestimmten Bildbearbeitungsvorganges, für den das Patchabgleichsframework eingesetzt werden soll, modifiziert (Block 704). Bei einem Beispiel entfernt das Trainingsverwaltermodul 130 zum Trainieren des Frameworks für das Lochfüllen Bereiche aus jedem Bild eines oder mehrerer Sätze von Trainingsbildern. Das Trainingsverwaltermodul 130 entfernt beispielsweise Bereiche aus Trainingsbildern (nicht gezeigt), um die Löcher 318, 320, 322, 324, 326, 328, 330, 332 einzubringen und so die lochhaltigen Musterbilder 302, 304, 306, 308, 310, 312, 314, 316 herzustellen. Bei diesem Beispiel sind die lochhaltigen Musterbilder von den ursprünglichen Versionen ohne Löcher ausgehend modifiziert worden. Es sollte einsichtig sein, dass das Trainingsverwaltermodul 130 die Trainingsbilder auf Grundlage des bestimmten Bildbearbeitungsvorganges, für den das Patchabgleichsframework eingesetzt werden soll, modifiziert. Das Trainingsverwaltermodul 130 modifiziert die Trainingsbilder bei Szenarien, bei denen das Patchabgleichsframework zum Implementieren von Beschneidungs- bzw. Freistellvorgängen eingesetzt wird, auf andere Weise. Das Trainingsverwaltermodul 130 ist dafür konfiguriert, Trainingsbilder auf verschiedene Weisen zu modifizieren, um das Patchabgleichsframework für das Ausführen verschiedener Bildbearbeitungsvorgänge zu trainieren, ohne vom Wesen oder Umfang der beschriebenen Techniken abzugehen.
  • Die modifizierten Trainingsbilder werden an das Patchabgleichsframework übermittelt (Block 706). Entsprechend den hier erläuterten Prinzipien stellt das Patchabgleichsframework die übermittelten Bilder als Eingabe für das Offsetvorhersage-Neuronalnetzwerk bereit. Bei einem Beispiel übermittelt das Trainingsverwaltermodul 130 die bei Block 704 modifizierten Trainingsbilder an das Patchabgleichsframework des dargestellten Beispiels 500. Hierdurch initiiert das Trainingsverwaltermodul 130 das Training dieses Frameworks. Während des Trainings lernt das Framework das Generieren von Offsetvorhersagen, die als Verschiebungsabbildungen ausgebildet sind, um den bestimmten Bildbearbeitungsvorgang in Bezug auf die modifizierten Trainingsbilder auszuführen. Dieses Lernen beruht teilweise auf dem Bestimmen exakter Patches, die an den Pixeln der Trainingsbilder zentriert sind, und zudem auf dem Lernen von Gewichtungen einer Zielfunktion.
  • Das Patchabgleichsframework bezieht als Verschiebungsabbildungen ausgebildete Offsetvorhersagen als Ausgabe des Offsetvorhersage-Neuronalnetzwerkes (Block 708). Bei einem Beispiel bezieht das Trainingsverwaltermodul 130 Offsetvorhersagen, die als Verschiebungsabbildungen ausgebildet sind, die von dem vollständig faltungstechnischen Offsetvorhersage-Neuronalnetzwerk 504 generiert werden. Die Offsetvorhersagen und die modifizierten Trainingsbilder werden von dem Patchabgleichsframework für das Offsetanwendungsmodul bereitgestellt (Block 710). Bei einem Beispiel stellt das Trainingsverwaltermodul 130 die bei Block 704 hergestellten modifizierten Trainingsbilder und die bei Block 708 bezogenen Offsetvorhersagen für das Offsetanwendungsmodul 138 bereit.
  • Bilder, an denen der Vorgang durchgeführt worden ist, werden als Ausgabe des Offsetanwendungsmoduls bezogen (Block 712). Entsprechend den hier erläuterten Prinzipien wird der Vorgang ausgeführt, indem Pixel der eingegebenen modifizierten Trainingsbilder auf Pixel, die von dem Vorgang betroffen sind, entsprechend Offsetvorhersagen abgebildet werden. Bei einem Beispiel bezieht das Trainingsverwaltermodul 130 Bilder aus der Ausgabe von dem Offsetanwendungsmodul 138. Der bestimmte Bildbearbeitungsvorgang ist an diesen Bildern durchgeführt worden, indem das Offsetanwendungsmodul 138 Pixel der modifizierten Trainingsbilder, die bei Block 706 an das Patchabgleichsframework übermittelt werden, auf die von dem Vorgang betroffenen Pixel abbildet. Das Offsetanwendungsmodul 138 führt diese Abbildung auf Grundlage der bei Block 710 bereitgestellten Offsetvorhersagen aus.
  • Parameter des Patchabgleichsframeworks werden auf Grundlage eines Vergleiches der Trainingsbilder mit den bearbeiteten Bildern, die von dem Patchabgleichsframework ausgegeben werden, angepasst (Block 714). Entsprechend den hier erläuterten Prinzipien werden die Parameter zudem auf Grundlage eines Vergleiches von Werten der betroffenen Pixel vor der Modifikation bei Block 704 mit abgebildeten Werten der betroffenen Pixel angepasst. Bei einem Beispiel vergleicht das Trainingsverwaltermodul 130 die Bilder, die von dem Framework ausgegeben werden und die bearbeitet worden sind, mit den Trainingsbildern. Das Trainingsverwaltermodul 130 vergleicht zudem Werte der Trainingsbildpixel entsprechend betroffenen Pixeln vor der Modifikation bei Block 704 und der Pixel, die auf diese Pixel abgebildet werden, siehe Block 712. Bei einer oder mehreren Implementierungen nimmt das Trainingsverwaltermodul 130 diese Vergleiche vor, indem Verluste unter Verwendung eines I1 -Abstandes auf Grundlage von H × W × 7 × 7 Patches der ursprünglichen Trainingsbilder und H × W × 7 × 7 Patches, die aus den Bildern extrahiert werden, berechnet werden, siehe Block 712. Als Teil der Berechnung des Abstandes setzt das Trainingsverwaltermodul 130 einen Abtastkern, wie vorstehend beschrieben, ein, um differenzierbare Abtastungen der Offsetvorhersagepixel vorzunehmen. Auf Grundlage der berechneten Abstände passt das Trainingsverwaltermodul 130 Parameter des Frameworks, so beispielsweise Parameter von Streckungsfaltungsschichten, an. Auf diese Weise lernt das Framework das Generieren von Offsetvorhersagen, was bei Anwendung zu Ausgabebildern führt, in denen von einem Bildbearbeitungsvorgang betroffene Pixel Content aufweisen, der im Vergleich zu anderem Content des Bildes randkonsistent, semantisch vernünftig und optisch ansprechend ist.
  • Nach erfolgter Beschreibung exemplarischer Prozeduren entsprechend einer oder mehreren Implementierungen werden nunmehr ein exemplarisches System und eine exemplarische Vorrichtung betrachtet, die zur Implementierung der verschiedenen hier beschriebenen Techniken eingesetzt werden können.
  • Exemplarisches System und exemplarische Vorrichtung
  • 8 zeigt bei 800 allgemein ein exemplarisches System, das eine exemplarische Rechenvorrichtung 802 beinhaltet, die ein oder mehrere Rechensysteme und/oder eine oder mehrere solche Vorrichtungen darstellt, die die hier beschriebenen verschiedenen Techniken implementieren können. Dies ist durch Einbeziehung des Patchabgleichers 116 und des Trainingsverwaltermoduls 130 dargestellt. Die Rechenvorrichtung 802 kann beispielsweise ein Server eines Dienstanbieters, eine Vorrichtung, die einem Client zugeordnet ist (beispielsweise eine Clientvorrichtung), ein On-Chip-System und/oder eine beliebige andere geeignete Rechenvorrichtung oder ein solches Rechensystem sein.
  • Die exemplarische Rechenvorrichtung 802 beinhaltet, wie dargestellt ist, ein Verarbeitungssystem 804, ein oder mehrere computerlesbare Medien 806 und eine oder mehrere I/O-Schnittstellen 808, die kommunikationstechnisch miteinander gekoppelt sind. Obwohl dies nicht gezeigt ist, kann die Rechenvorrichtung 802 des Weiteren einen Systembus oder ein anderes Daten- und Befehlsübertragungssystem beinhalten, das die verschiedenen Komponenten miteinander koppelt. Ein Systembus kann eine beliebige Busstruktur oder eine Kombination aus verschiedenen Busstrukturen beinhalten, so beispielsweise einen Speicherbus oder einen Speichercontroller, einen Peripheriebus, einen universellen seriellen Bus und/oder einen Prozessor- oder Lokalbus, der eine Vielzahl von Busarchitekturen einsetzt. Eine Vielzahl von weiteren Beispielen, so beispielsweise Steuer- bzw. Regel- und Datenleitungen, ist ebenfalls einbezogen.
  • Das Verarbeitungssystem 804 stellt eine Funktionalität zur Durchführung einer oder mehrerer Operationen bzw. Vorgänge unter Verwendung von Hardware dar. Entsprechend ist das Verarbeitungssystem 804 derart dargestellt, dass es Hardwareelemente 810 beinhaltet, die als Prozessoren, funktionelle Blöcke und dergleichen mehr konfiguriert sein können. Dies kann eine Implementierung in Hardware als anwendungsspezifische integrierte Schaltung oder als andere Logikvorrichtung, die unter Verwendung eines oder mehrerer Halbleiter gebildet ist, beinhalten. Die Hardwareelemente 810 sind nicht durch die Materialien, aus denen sie gebildet sind, oder durch die Bearbeitungsmechanismen, die zum Einsatz kommen, beschränkt. Die Prozessoren können beispielsweise aus einem Halbleiter / Halbleitern und/oder Transistoren (beispielsweise elektronischen integrierten Schaltungen (ICs)) bestehen. In diesem Kontext können prozessorseitig ausführbare Anweisungen elektronisch ausführbare Anweisungen sein.
  • Die computerlesbaren Speichermedien 806 sind derart dargestellt, dass sie eine Ablage / einen Speicher 812 beinhalten. Die Ablage / der Speicher 812 bietet eine Ablage-/Speicherkapazität, die einem oder mehreren computerlesbaren Medien zugeordnet ist. Die Ablage-/Speicherkomponente 812 kann flüchtige Medien (so beispielsweise einen Speicher mit wahlfreiem Zugriff (RAM)) und/oder nichtflüchtige Medien (so beispielsweise einen Nur-Lese-Speicher (ROM), einen Flash-Speicher, optische Platten, magnetische Platten und dergleichen mehr) beinhalten. Die Ablage-/Speicherkomponente 812 kann feste Medien (beispielsweise RAM, ROM, ein Festplattenlaufwerk und dergleichen mehr) wie auch entfernbare Medien (beispielsweise einen Flash-Speicher, ein entfernbares Festplattenlaufwerk, eine optische Platte und dergleichen mehr) beinhalten. Die computerlesbaren Medien 806 können auf vielerlei Arten, wie nachstehend noch beschrieben wird, konfiguriert sein.
  • Eine Eingabe-/Ausgabe-Schnittstelle / Eingabe-/Ausgabe-Schnittstellen 808 bieten eine Funktionalität, die ermöglicht, dass ein Nutzer Befehle und Information in die Rechenvorrichtung 802 eingibt, und die zudem ermöglicht, dass dem Nutzer und/oder anderen Komponenten oder Vorrichtungen Information unter Verwendung verschiedener Eingabe-/Ausgabevorrichtungen präsentiert wird. Beispiele für Eingabevorrichtungen beinhalten eine Tastatur, eine Cursorsteuer- bzw. Regelvorrichtung (beispielsweise eine Maus), ein Mikrofon, einen Scanner, eine Berührungsfunktionalität (beispielsweise kapazitive oder andere Sensoren, die dafür konfiguriert sind, eine physische Berührung zu detektieren), eine Kamera (die beispielsweise sichtbare oder unsichtbare Wellenlängen, so beispielsweise Infrarotfrequenzen, dafür einsetzen kann, Bewegungen als Gesten zu erkennen, die keine Berührung implizieren), und dergleichen mehr. Beispiele für Ausgabevorrichtungen beinhalten eine Anzeigevorrichtung (beispielsweise einen Monitor oder Projektor), Lautsprecher, einen Drucker, eine Netzwerkkarte, eine berührungsreaktive Vorrichtung und dergleichen mehr. Daher kann die Rechenvorrichtung 802 auf vielerlei Arten, wie nachstehend noch beschrieben wird, konfiguriert sein, um die Nutzerinteraktion zu unterstützen.
  • Es sind hier verschiedene Techniken im allgemeinen Kontext von Software, Hardwareelementen oder Programmmodulen beschrieben worden. Allgemein beinhalten derartige Module Routinen, Programme, Objekte, Elemente, Komponenten, Datenstrukturen und dergleichen mehr, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Die Begriffe „Modul“, „Funktionalität“ und „Komponente“ bezeichnen im Sinne des Vorliegenden allgemein Software, Firmware, Hardware oder eine Kombination hieraus. Die Merkmale der hier beschriebenen Techniken sind plattformunabhängig, was bedeutet, dass die Techniken auf einer Vielzahl von handelsüblichen Rechenplattformen mit einer Vielzahl von Prozessoren implementiert sein können.
  • Eine Implementierung der beschriebenen Module und Techniken kann auf einer bestimmten Form von computerlesbaren Medien gespeichert sein oder über diese übertragen werden. Die computerlesbaren Medien können eine Vielzahl von Medien beinhalten, auf die von der Rechenvorrichtung 802 zugegriffen werden kann. Beispiels- und nicht beschränkungshalber können computerlesbare Medien „computerlesbare Speichermedien“ und „computerlesbare Signalmedien“ beinhalten.
  • „Computerlesbare Speichermedien“ können Medien und/oder Vorrichtungen bezeichnen, die eine dauerhafte und/oder nichttemporäre Speicherung von Information im Gegensatz zur bloßen Signalübertragung, zu Trägerwellen oder zu Signalen per se ermöglichen. Computerlesbare Speichermedien bezeichnen daher nicht signaltragende Medien. Computerlesbare Speichermedien beinhalten Hardware, so beispielsweise flüchtige und nichtflüchtige, entfernbare und nichtentfernbare Medien und/oder Speichervorrichtungen, die bei einem Verfahren oder einer Technologie implementiert sind, die zur Speicherung von Information geeignet ist, so beispielsweise als computerlesbare Anweisungen, Datenstrukturen, Programmmodule, Logikelemente/Schaltungen oder andere Daten. Beinhalten können Beispiele für computerlesbare Speichermedien unter anderem RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, DVD oder einen anderen optischen Speicher, Festplatten, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder eine andere Speichervorrichtung, physische Medien oder Objekte, die dafür geeignet sind, dass gewünschte Information gespeichert wird, und auf die ein Computer zugreifen kann.
  • „Computerlesbare Signalmedien“ können signaltragende Medien bezeichnen, die dafür konfiguriert sind, Anweisungen an die Hardware der Rechenvorrichtung 802 beispielsweise über ein Netzwerk zu übermitteln. Signalmedien können typischerweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal verkörpern, so beispielsweise Trägerwellen, Datensignale oder andere Transportmechanismen. Signalmedien beinhalten zudem beliebige Informationsverteilungsmedien. Der Begriff „moduliertes Datensignal“ bezeichnet ein Signal, bei dem eine oder mehrere Eigenschaften derart eingestellt oder geändert sind, dass Information in dem Signal codiert ist. Beispiels- und nicht beschränkungshalber beinhalten Kommunikationsmedien drahtgebundene Medien, so beispielsweise ein drahtgebundenes Netzwerk oder eine Direktdrahtverbindung, und drahtlose Medien, so beispielsweise akustische, hochfrequenzbasierte, infrarote und andere drahtlose Medien.
  • Wie vorstehend beschrieben worden ist, stellen die Hardwareelemente 810 und die computerlesbaren Medien 806 Module, eine programmierbare Vorrichtungslogik und/oder eine feste Vorrichtungslogik dar, die in Form von Hardware implementiert sind, die bei einigen Ausführungsformen dafür eingesetzt werden kann, wenigstens einige Aspekte der hier beschriebenen Techniken beispielsweise zur Ausführung einer oder mehrerer Anweisungen zu implementieren. Die Hardware kann Komponenten einer integrierten Schaltung oder eines On-Chip-Systems, eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA), eine komplexe programmierbare Logikvorrichtung (CPLD) und andere Implementierungen in Silizium oder anderer Hardware beinhalten. In diesem Kontext kann Hardware als Verarbeitungsvorrichtung wirken, die Programmaufgaben wahrnimmt, die durch Anweisungen und/oder eine Logik definiert sind, die durch Hardware verkörpert ist, wie auch Hardware, die zur Speicherung von Anweisungen zur Ausführung verwendet werden, so beispielsweise durch die vorbeschriebenen computerlesbaren Speichermedien.
  • Kombinationen des Vorbeschriebenen können zudem zur Implementierung verschiedener der hier beschriebenen Techniken eingesetzt werden. Entsprechend können Software, Hardware oder ausführbare Module als eine oder mehrere Anweisungen und/oder Logik implementiert sein, die in irgendeiner Form von computerlesbaren Speichermedien und/oder durch ein oder mehrere Hardwareelemente 810 verkörpert ist. Die Rechenvorrichtung 802 kann dafür konfiguriert sein, bestimmte Anweisungen und/oder Funktionen entsprechend Software- und/oder Hardwaremodulen zu implementieren. Entsprechend kann eine als Software gegebene Implementierung eines Moduls, das von der Rechenvorrichtung 802 ausführbar ist, auch wenigstens teilweise in Hardware erfolgen, so beispielsweise unter Verwendung computerlesbarer Speichermedien und/oder Hardwareelemente 810 des Verarbeitungssystems 804. Die Anweisungen und/oder Funktionen können von einem oder mehreren Objekten (beispielsweise einer oder mehreren Rechenvorrichtungen 802 und/oder Verarbeitungssystemen 804) ausführbar/betreibbar sein, um die hier beschriebenen Techniken, Module und Beispiele zu implementieren.
  • Die hier beschriebenen Techniken können von verschiedenen Konfigurationen der Rechenvorrichtung 802 unterstützt werden und sind nicht auf die spezifischen Beispiele für die hier beschriebenen Techniken beschränkt. Die Funktionalität kann zudem gänzlich oder in Teilen unter Verwendung eines verteilten Systems implementiert sein, so beispielsweise über eine „Cloud“ 814 mittels einer Plattform 816, wie nachstehend noch beschrieben wird.
  • Die Cloud 814 beinhaltet eine Plattform 816 für Ressourcen 818 und/oder stellt diese dar. Die Plattform 816 abstrahiert die darunterliegende Funktionalität der Hardware- (beispielsweise Server) und Softwareressourcen der Cloud 814. Die Ressourcen 818 können Anwendungen und/oder Daten beinhalten, die eingesetzt werden können, während eine Computerverarbeitung auf Servern ausgeführt wird, die von der Rechenvorrichtung 802 getrennt sind. Die Ressourcen 818 können zudem Dienste beinhalten, die über das Internet und/oder über ein Teilnehmernetzwerk bereitgestellt werden, so beispielsweise ein zellenbasiertes oder ein Wi-Fi-Netzwerk.
  • Die Plattform 816 kann Ressourcen und Funktionen abstrahieren, um die Rechenvorrichtung 802 mit anderen Rechenvorrichtungen zu verbinden. Die Plattform 816 kann zudem dafür dienen, die Skalierung von Ressourcen zu abstrahieren, um einen entsprechenden Skalierungsgrad für bestehenden Bedarf an den Ressourcen 818, die über die Plattform 816 implementiert sind, bereitzustellen. Entsprechend kann bei einer Ausführungsform mit wechselseitig verbundenen Vorrichtungen eine Implementierung der hier beschriebenen Funktionalität über das System 800 verteilt sein. Die Funktionalität kann beispielsweise teilweise auch auf der Rechenvorrichtung 802 wie auch über die Plattform 816, die die Funktionalität der Cloud 814 abstrahiert, implementiert sein.
  • Schlussbemerkung
  • Obwohl die Erfindung in einer Sprache beschrieben worden ist, die für Strukturmerkmale und/oder methodische Vorgänge spezifisch ist, sollte einsichtig sein, dass die in den beigefügten Ansprüchen definierte Erfindung nicht unbedingt auf die beschriebenen spezifischen Merkmale oder Vorgänge beschränkt ist. Vielmehr sind die spezifischen Merkmale und Vorgänge als exemplarische Formen der Implementierung der beanspruchten Erfindung offenbart.

Claims (20)

  1. Verfahren, das durch eine Rechenvorrichtung implementiert wird, zum Durchführen von Bildbearbeitungsvorgängen, die ein Patchabgleichen implizieren, in einer Digitalmedienumgebung, wobei das Verfahren umfasst: durch die Rechenvorrichtung erfolgendes Empfangen eines Digitalbildes, bezüglich dessen ein Bildbearbeitungsvorgang durchgeführt werden soll; durch die Rechenvorrichtung erfolgendes Übermitteln des Digitalbildes an einen Patchabgleicher mit einem Offsetvorhersage-Neuronalnetzwerk; und durch die Rechenvorrichtung erfolgendes Empfangen eines bearbeiteten Digitalbildes als Ausgabe von dem Patchabgleicher, wobei der Patchabgleicher den Bildbearbeitungsvorgang in Bezug auf das Digitalbild zum Generieren des bearbeiteten Digitalbildes zur Ausgabe durchführt durch: mit dem Offsetvorhersage-Neuronalnetzwerk erfolgendes Generieren einer Offsetvorhersage als Verschiebungsabbildung, wobei die Verschiebungsabbildung Offsetvektoren umfasst, die eine Verschiebung von Bildpixeln des Digitalbildes zum Durchführen des Bildbearbeitungsvorganges darstellen; Bestimmen der Offsetvektoren, die den Bildpixeln entsprechen, die von dem Bildbearbeitungsvorgang betroffen sind; Abbilden von Pixelwerten der Bildpixel, die durch die bestimmten Offsetvektoren dargestellt werden, auf die betroffenen Bildpixel, und Einstellen von Pixelwerten der betroffenen Bildpixel entsprechend der Abbildung.
  2. Verfahren nach Anspruch 1, wobei das Abbilden des Weiteren umfasst: Identifizieren eines Bildpixels, das von einem Offsetvektor dargestellt wird, durch Berechnen eines Ortes des identifizierten Bildpixels auf Grundlage der Verschiebung aus der Beschreibung durch den Offsetvektor in Bezug auf ein entsprechendes Bildpixel, das von dem Vorgang betroffen ist.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Offsetvorhersage-Neuronalnetzwerk die Offsetvorhersage als Verschiebungsabbildung auf Grundlage von Bildeigenschaften generiert, die durch Übermitteln an Trainingsbilder während des Trainings anstelle des Bestimmens eines nächsten Nachbarpatches auf Grundlage von Pixelwerten gelernt werden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Offsetvorhersage-Neuronalnetzwerk ein faltungstechnisches Neuronalnetzwerk umfasst, das Zwischenstreckungsschichten zum Durchführen eines oder mehrerer Faltungsvorgänge als Teil des Generierens der Offsetvorhersage als Verschiebungsabbildung für den Bildbearbeitungsvorgang aufweist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Offsetvorhersage-Neuronalnetzwerk unter Verwendung einer differenzierbaren Abtastung trainiert wird, um die Offsetvektoren von Offsetvorhersagen abzutasten, die von dem Offsetvorhersage-Neuronalnetzwerk während des Trainings generiert werden.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das bearbeitete Digitalbild als Ausgabe von dem Patchabgleicher empfangen wird, ohne dass Bildnachbearbeitungsvorgänge in Bezug auf die betroffenen Bildpixel durchgeführt werden.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Offsetvorhersage-Neuronalnetzwerk dafür trainiert wird, Offsetvorhersagen für den Bildbearbeitungsvorgang zu generieren, wobei der Bildbearbeitungsvorgang einen Vorgang von mehreren Bildbearbeitungsvorgängen, die ein Patchabgleichen implizieren, umfasst, wobei die mehreren Bildbearbeitungsvorgänge wenigstens eines beinhalten von: einem Vorgang des Lochfüllens; einem Vorgang des Bildneueinrichtens; einem Vorgang des Vorhersagens eines optischen Überganges; oder einem Vorgang des Vorhersagens eines zukünftigen Videoframes.
  8. Verfahren nach einem der vorhergehenden Ansprüche, des Weiteren umfassend: Empfangen eines lochhaltigen Digitalbildes mit wenigstens einem Loch, das eine Gruppe von zusammenhängenden Bildpixeln mit Werten umfasst, die die Abwesenheit von dargestelltem Bildinhalt angeben; Übermitteln des lochhaltigen Digitalbildes an den Patchabgleicher; Empfangen eines gefüllten Digitalbildes als Ausgabe von dem Patchabgleicher, wobei das gefüllte Digitalbild lochfüllenden Digitalcontent anstelle des wenigstens einen Loches beinhaltet, wobei der Patchabgleicher das gefüllte Digitalbild ausgibt, durch: Generieren der Offsetvorhersage als Verschiebungsabbildung mit dem Offsetvorhersage-Neuronalnetzwerk, wobei die Offsetvektoren eine Verschiebung der Bildpixel des lochhaltigen Digitalbildes, die dafür konfiguriert sind, das Loch des lochhaltigen Digitalbildes zu füllen, darstellen; Bestimmen der Offsetvektoren, die dem Loch des lochhaltigen Digitalbildes entsprechen; Abbilden der Pixelwerte der Bildpixel, die von den bestimmten Offsetvektoren dargestellt werden, auf die Bildpixel des Loches, und Einstellen der Pixelwerte der Bildpixel des Loches entsprechend der Abbildung, was beim Füllen des Loches mit dargestelltem Content effektiv ist.
  9. Verfahren nach Anspruch 8, wobei das lochhaltige Digitalbild mehrere Löcher aufweist.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Empfangen des Digitalbildes, das Übermitteln des Digitalbildes und das Empfangen des bearbeiteten Digitalbildes in Verbindung mit einer Bildbearbeitungsanwendung der Rechenvorrichtung, die den Patchabgleicher beinhaltet, durchgeführt werden.
  11. Verfahren nach Anspruch 10, des Weiteren umfassend ein Empfangen der Bildbearbeitungsanwendung mit dem Patchabgleicher von einem Dienstanbieter.
  12. System, umfassend: einen Patchabgleicher zum Ausgeben bearbeiteter Digitalbilder auf Grundlage von als Eingabe empfangenen Digitalbildern und eines Bildbearbeitungsvorganges, für den ein Offsetvorhersage-Neuronalnetzwerk des Patchabgleichers trainiert wird, um Offsetvorhersagen zu generieren, die als Verschiebungsabbildungen ausgebildet sind; wenigstens einen Prozessor; und einen Speicher, in dem computerlesbare Anweisungen gespeichert sind, die von dem wenigstens einen Prozessor ausführbar sind, um Vorgänge durchzuführen, die umfassen: Übermitteln eines Digitalbildes an den Patchabgleicher; und Empfangen eines bearbeiteten Digitalbildes von dem Patchabgleicher, wobei das bearbeitete Digitalbild generiert wird, indem Pixelwerte für Bildpixel des übermittelten Digitalbildes, die von dem Bildbearbeitungsvorgang betroffen sind, eingestellt werden, wobei die Pixelwerte der betroffenen Bildpixel entsprechend einer Offsetvorhersage eingestellt werden, die als Verschiebungsabbildung, die von dem Offsetvorhersage-Neuronalnetzwerk generiert wird, ausgebildet ist.
  13. System nach Anspruch 12, wobei die Pixelwerte der betroffenen Bildpixel des Weiteren entsprechend Offsetvektoren der Verschiebungsabbildung eingestellt werden, die eine Verschiebung von Bildpixeln des Digitalbildes aus der Eingabe für das Vorhersage-Neuronalnetzwerk an verschiedene bzw. andere Orte zum Durchführen des Bildbearbeitungsvorganges angeben.
  14. System nach Anspruch 12 oder 13, wobei der Patchabgleicher wenigstens ein erstes und ein zweites Offsetvorhersage-Neuronalnetzwerk beinhaltet, die dafür trainiert sind, die Offsetvorhersagen zu generieren, die als die Verschiebungsabbildungen für wenigstens einen ersten bzw. einen zweiten Bildbearbeitungsvorgang ausgebildet sind.
  15. System nach einem der Ansprüche 12 bis 14, mit wenigstens einem der folgenden Punkte: das Offsetvorhersage-Neuronalnetzwerk ist als faltungstechnisches Neuronalnetzwerk mit vier Zwischenstreckungsfaltungsschichten konfiguriert; das Offsetvorhersage-Neuronalnetzwerk ist als Feed-Forward-Neuronalnetzwerk konfiguriert; das Offsetvorhersage-Neuronalnetzwerk ist unter Verwendung der Technik des differenzierbaren Abtastens dafür trainiert, Offsetvektoren der Offsetvorhersagen, die von dem Offsetvorhersage-Neuronalnetzwerk während des Trainings generiert werden, abzutasten; oder das Offsetvorhersage-Neuronalnetzwerk ist ohne generatives adversatives Training trainiert.
  16. Verfahren, das durch eine Rechenvorrichtung implementiert wird, in einer Digitalmedienumgebung zum Trainieren eines Patchabgleichsframeworks mit einem Offsetvorhersage-Neuronalnetzwerk zum Durchführen von Bildbearbeitungsvorgängen, die ein Patchabgleichen implizieren, an Digitalbildern, wobei das Verfahren umfasst: durch die Rechenvorrichtung erfolgendes Modifizieren von Bereichen von Trainingsbildern auf Grundlage eines Bildbearbeitungsvorganges, für dessen Unterstützung das Offsetvorhersage-Neuronalnetzwerk trainiert wird; durch die Rechenvorrichtung erfolgendes Übermitteln der modifizierten Trainingsbilder an das Patchabgleichsframework; durch die Rechenvorrichtung erfolgendes Empfangen bearbeiteter Digitalbilder von dem Patchabgleichsnetzwerk, wobei die bearbeiteten Digitalbilder generiert werden, indem Pixelwerte für Bildpixel der übermittelten Trainingsbilder entsprechend Offsetvorhersagen eingestellt werden, die als Verschiebungsabbildungen, die von dem Offsetvorhersage-Neuronalnetzwerk generiert werden, ausgebildet sind; durch die Rechenvorrichtung erfolgendes Vergleichen der bearbeiteten Digitalbilder mit den Trainingsbildern auf Grundlage wenigstens einer Verlustfunktion und einer differenzierbaren Abtastung der generierten Offsetvorhersagen; und durch die Rechenvorrichtung auf Grundlage des Vergleichens erfolgendes Anpassen von Parametern des Offsetvorhersage-Neuronalnetzwerkes, die im Betrieb zum Generieren der Offsetvorhersagen verwendet werden.
  17. Verfahren nach Anspruch 16, wobei das Vergleichen ein Extrahieren von Patches aus den bearbeiteten Digitalbildern und den modifizierten Trainingsbildern beinhaltet, wobei die extrahierten Patches um jedes Pixel der bearbeiteten und modifizierten Trainingsbilder zentriert sind und dafür verwendet werden, Datenstrukturen mit Dimensionen zu bilden, die einem Produkt aus Bildhöhe, Bildbreite und Patchdimensionen entsprechen.
  18. Verfahren nach Anspruch 17, wobei wenigstens eine der Verlustfunktionen einen Abstand zwischen den Datenstrukturen misst, die für ein modifiziertes Trainingsbild und ein entsprechendes bearbeitetes Digitalbild gebildet werden.
  19. Verfahren nach einem der Ansprüche 16 bis 18, des Weiteren umfassend das Durchführen des Modifizierens, Übermittelns, Empfangens, Vergleichens und Anpassens für mehrere Offsetvorhersage-Neuronalnetzwerke, um jedes der Offsetvorhersage-Neuronalnetzwerke dafür zu trainieren, die Offsetvorhersagen, die als Verschiebungsabbildungen für einen Bearbeitungsvorgang von mehreren Bildbearbeitungsvorgängen ausgebildet sind, zu generieren.
  20. Verfahren nach Anspruch 19, wobei die mehreren Bildbearbeitungsvorgänge wenigstens eines beinhalten von: einem Vorgang des Lochfüllens; einem Vorgang des Bildneueinrichtens; einem Vorgang des Vorhersagens eines optischen Überganges; oder einem Vorgang des Vorhersagens eines zukünftigen Videoframes.
DE102018006243.1A 2017-10-16 2018-08-07 Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes Pending DE102018006243A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/785,386 US10672164B2 (en) 2017-10-16 2017-10-16 Predicting patch displacement maps using a neural network
US15/785,386 2017-10-16

Publications (1)

Publication Number Publication Date
DE102018006243A1 true DE102018006243A1 (de) 2019-05-02

Family

ID=66097516

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018006243.1A Pending DE102018006243A1 (de) 2017-10-16 2018-08-07 Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes

Country Status (4)

Country Link
US (2) US10672164B2 (de)
CN (1) CN109671126B (de)
AU (1) AU2018211354B2 (de)
DE (1) DE102018006243A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10699453B2 (en) 2017-08-17 2020-06-30 Adobe Inc. Digital media environment for style-aware patching in a digital image
US10672164B2 (en) 2017-10-16 2020-06-02 Adobe Inc. Predicting patch displacement maps using a neural network
US10614557B2 (en) 2017-10-16 2020-04-07 Adobe Inc. Digital image completion using deep learning
EP3495988A1 (de) * 2017-12-05 2019-06-12 Aptiv Technologies Limited Verfahren zur verarbeitung von bilddaten in einem verbindungsnetzwerk
US10755391B2 (en) 2018-05-15 2020-08-25 Adobe Inc. Digital image completion by learning generation and patch matching jointly
US11003951B2 (en) * 2018-12-26 2021-05-11 Samsung Electronics Co., Ltd. Image processing apparatus and image processing method thereof
US11080835B2 (en) * 2019-01-09 2021-08-03 Disney Enterprises, Inc. Pixel error detection system
WO2020147957A1 (en) * 2019-01-17 2020-07-23 Toyota Motor Europe System and method for generating a mask for object instances in an image
CN110060264B (zh) * 2019-04-30 2021-03-23 北京市商汤科技开发有限公司 神经网络训练方法、视频帧处理方法、装置及系统
JP7245364B2 (ja) * 2019-06-06 2023-03-23 エレクタ、インク. 変形可能な層を有するCycleGANを用いたsCT画像生成
CN110853110B (zh) * 2019-09-20 2023-06-30 杭州火烧云科技有限公司 一种基于生成对抗网络的图片自动调色方法
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
US11348314B2 (en) 2020-05-08 2022-05-31 Dreamworks Animation Llc Fast and deep facial deformations
US11689713B2 (en) 2020-07-15 2023-06-27 Tencent America LLC Predicted frame generation by deformable convolution for video coding
US11763436B2 (en) * 2020-07-31 2023-09-19 Adobe, Inc. Facial reconstruction network
CN112053375A (zh) * 2020-08-26 2020-12-08 上海眼控科技股份有限公司 基于改进的网络卷积模型预测临近预报的方法及设备
CN112702598B (zh) * 2020-12-03 2024-06-04 浙江智慧视频安防创新中心有限公司 基于位移操作进行编解码的方法、装置、电子设备及介质
CN112862672B (zh) * 2021-02-10 2024-04-16 厦门美图之家科技有限公司 刘海生成方法、装置、计算机设备和存储介质
CN113688742B (zh) * 2021-08-26 2023-10-20 五邑大学 一种sar图像识别方法、装置及存储介质
CN116128792A (zh) * 2021-11-12 2023-05-16 北京三星通信技术研究有限公司 图像处理方法及相关设备

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2255699B (en) 1991-05-10 1994-09-28 Marconi Gec Ltd Methods and apparatus for image restoration
JP3519255B2 (ja) * 1997-10-31 2004-04-12 シャープ株式会社 画像形成装置
US6160923A (en) 1997-11-05 2000-12-12 Microsoft Corporation User directed dust and compact anomaly remover from digital images
AU2001247627A1 (en) * 2000-03-22 2001-10-03 3-Dimensional Pharmaceuticals, Inc. System, method, and computer program product for representing object relationships in a multidimensional space
WO2001075790A2 (en) * 2000-04-03 2001-10-11 3-Dimensional Pharmaceuticals, Inc. Method, system, and computer program product for representing object relationships in a multidimensional space
US7782338B1 (en) * 2004-02-17 2010-08-24 Krzysztof Antoni Zaklika Assisted adaptive region editing tool
US7653261B2 (en) 2004-11-12 2010-01-26 Microsoft Corporation Image tapestry
US8804831B2 (en) * 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
US8233739B1 (en) 2008-08-29 2012-07-31 Adobe Systems Incorporated Patch jittering for visual artifact correction
US8340463B1 (en) 2008-08-29 2012-12-25 Adobe Systems Incorporated Candidate pruning for patch transforms
US8532387B2 (en) 2009-09-04 2013-09-10 Adobe Systems Incorporated Methods and apparatus for procedural directional texture generation
KR20120014876A (ko) 2010-08-10 2012-02-20 삼성전자주식회사 영상 처리 장치 및 방법
US20120141045A1 (en) 2010-12-01 2012-06-07 Sony Corporation Method and apparatus for reducing block artifacts during image processing
US8737723B1 (en) 2010-12-09 2014-05-27 Google Inc. Fast randomized multi-scale energy minimization for inferring depth from stereo image pairs
US8861868B2 (en) 2011-08-29 2014-10-14 Adobe-Systems Incorporated Patch-based synthesis techniques
US9916538B2 (en) 2012-09-15 2018-03-13 Z Advanced Computing, Inc. Method and system for feature detection
US8818135B1 (en) 2012-02-22 2014-08-26 Adobe Systems Incorporated Low memory content aware fill
US9575641B2 (en) 2012-03-20 2017-02-21 Adobe Systems Incorporated Content aware image editing
US8965083B2 (en) * 2012-06-28 2015-02-24 General Electric Company Automatic detection of vertebrae boundaries in spine images
US9153209B2 (en) * 2012-08-06 2015-10-06 Nvidia Corporation Method and system for generating a displacement map from a normal map
US9129399B2 (en) 2013-03-11 2015-09-08 Adobe Systems Incorporated Optical flow with nearest neighbor field fusion
US9208548B1 (en) 2013-05-06 2015-12-08 Amazon Technologies, Inc. Automatic image enhancement
US10249029B2 (en) 2013-07-30 2019-04-02 Apple Inc. Reconstruction of missing regions of images
US9730643B2 (en) * 2013-10-17 2017-08-15 Siemens Healthcare Gmbh Method and system for anatomical object detection using marginal space deep neural networks
US9668699B2 (en) * 2013-10-17 2017-06-06 Siemens Healthcare Gmbh Method and system for anatomical object detection using marginal space deep neural networks
US9202299B2 (en) * 2013-12-20 2015-12-01 Adobe Systems Incorporated Hint based spot healing techniques
FR3020735B1 (fr) * 2014-04-30 2017-09-15 Ulis Procede de traitement d'une image infrarouge pour une correction des non uniformites
CN105321147B (zh) * 2014-06-25 2019-04-12 腾讯科技(深圳)有限公司 图像处理的方法及装置
US9558428B1 (en) * 2014-07-18 2017-01-31 Samuel B. Green Inductive image editing based on learned stylistic preferences
US9396530B2 (en) 2014-07-24 2016-07-19 Adobe Systems Incorporated Low memory content aware image modification
US9536293B2 (en) * 2014-07-30 2017-01-03 Adobe Systems Incorporated Image assessment using deep convolutional neural networks
US9311735B1 (en) * 2014-11-21 2016-04-12 Adobe Systems Incorporated Cloud based content aware fill for images
AU2014271236A1 (en) 2014-12-02 2016-06-16 Canon Kabushiki Kaisha Video segmentation method
US9697234B1 (en) 2014-12-16 2017-07-04 A9.Com, Inc. Approaches for associating terms with image regions
EP3274915A1 (de) * 2015-03-27 2018-01-31 Siemens Aktiengesellschaft Verfahren und system zur automatisierten diagnose von hirntumoren mittels bildklassifizierung
EP3093821B1 (de) * 2015-04-16 2019-10-09 Siemens Healthcare GmbH Verfahren und system für anatomische objektposenerfassung mittels tiefen marginalraum-neuronalen netzwerken
US9842436B2 (en) 2015-05-05 2017-12-12 Autodesk, Inc. Seamless texture transfer
EP3295374B8 (de) * 2015-05-11 2023-10-18 Siemens Healthcare GmbH Verfahren und system zur orientierungspunktdetektion in medizinischen bildern unter verwendung tiefer neuronaler netzwerke
US9552626B1 (en) 2015-10-07 2017-01-24 Adobe Systems Incorporated Digital image blemish removal
EP3371777A1 (de) 2015-11-06 2018-09-12 THOMSON Licensing Verfahren zur übertragung eines stils eines visuellen referenzobjekts auf ein anderes visuelles objekt und entsprechende elektronische vorrichtung, computerlesbare programmprodukte und computerlesbares speichermedium
US9710898B2 (en) 2015-11-18 2017-07-18 Adobe Systems Incorporated Image synthesis utilizing an active mask
KR101727836B1 (ko) 2015-12-22 2017-04-17 한국과학기술원 영상 복원 장치 및 방법 및 장치
US10181195B2 (en) * 2015-12-28 2019-01-15 Facebook, Inc. Systems and methods for determining optical flow
US10282877B2 (en) 2016-02-02 2019-05-07 Adobe Inc. Generating content aware image fill with geometrical constraints
WO2017165538A1 (en) 2016-03-22 2017-09-28 Uru, Inc. Apparatus, systems, and methods for integrating digital media content into other digital media content
US9760978B1 (en) * 2016-05-09 2017-09-12 Adobe Systems Incorporated Missing region prediction
WO2017215767A1 (en) 2016-06-17 2017-12-21 Huawei Technologies Co., Ltd. Exposure-related intensity transformation
US9911201B2 (en) 2016-06-23 2018-03-06 Adobe Systems Incorporated Imaging process initialization techniques
US10387765B2 (en) * 2016-06-23 2019-08-20 Siemens Healthcare Gmbh Image correction using a deep generative machine-learning model
US10147459B2 (en) 2016-09-22 2018-12-04 Apple Inc. Artistic style transfer for videos
US10198839B2 (en) 2016-09-22 2019-02-05 Apple Inc. Style transfer-based image content correction
US10134108B2 (en) 2016-10-05 2018-11-20 Adobe Systems Incorporated Content aware sampling during patch synthesis
US10282815B2 (en) 2016-10-28 2019-05-07 Adobe Inc. Environmental map generation from a digital image
US10489676B2 (en) 2016-11-03 2019-11-26 Adobe Inc. Image patch matching using probabilistic sampling based on an oracle
KR20180055070A (ko) 2016-11-16 2018-05-25 삼성전자주식회사 재질 인식 및 재질 트레이닝을 수행하는 방법 및 장치
EP3330919A1 (de) 2016-11-30 2018-06-06 Thomson Licensing Verfahren zum einsetzen fehlender regionen in einem bild eines multimediainhalts, entsprechendes computerprogrammprodukt und vorrichtung
US10290085B2 (en) 2016-12-14 2019-05-14 Adobe Inc. Image hole filling that accounts for global structure and local texture
EP3340166A1 (de) 2016-12-21 2018-06-27 Dassault Systèmes Vervollständigung eines bildes
US20180211380A1 (en) 2017-01-25 2018-07-26 Athelas Inc. Classifying biological samples using automated image analysis
US10127631B1 (en) 2017-03-02 2018-11-13 Snap Inc. Automatic image inpainting using local patch statistics
US10147193B2 (en) * 2017-03-10 2018-12-04 TuSimple System and method for semantic segmentation using hybrid dilated convolution (HDC)
US10607329B2 (en) * 2017-03-13 2020-03-31 Adobe Inc. Illumination estimation from a single image
US11182639B2 (en) * 2017-04-16 2021-11-23 Facebook, Inc. Systems and methods for provisioning content
US10586308B2 (en) 2017-05-09 2020-03-10 Adobe Inc. Digital media environment for removal of obstructions in a digital image scene
US10504267B2 (en) 2017-06-06 2019-12-10 Adobe Inc. Generating a stylized image or stylized animation by matching semantic features via an appearance guide, a segmentation guide, and/or a temporal guide
US11154196B2 (en) * 2017-06-20 2021-10-26 Siemens Healthcare Gmbh Deep-learnt tissue deformation for medical imaging
US10776982B2 (en) 2017-07-03 2020-09-15 Artomatix Ltd. Systems and methods for providing non-parametric texture synthesis of arbitrary shape and/or material data in a unified framework
CN109284749A (zh) * 2017-07-19 2019-01-29 微软技术许可有限责任公司 精细化图像识别
US11257259B2 (en) * 2017-08-15 2022-02-22 Siemens Healthcare Gmbh Topogram prediction from surface data in medical imaging
US10699453B2 (en) 2017-08-17 2020-06-30 Adobe Inc. Digital media environment for style-aware patching in a digital image
US10706890B2 (en) * 2017-08-24 2020-07-07 Intel Corporation Cinematic space-time view synthesis for enhanced viewing experiences in computing environments
US10803555B2 (en) 2017-08-31 2020-10-13 Shanghai United Imaging Healthcare Co., Ltd. System and method for determining a trained neural network model for scattering correction
US10733756B2 (en) * 2017-08-31 2020-08-04 Nec Corporation Online flow guided memory networks for object detection in video
AU2017225023A1 (en) * 2017-09-05 2019-03-21 Canon Kabushiki Kaisha System and method for determining a camera pose
US10474900B2 (en) * 2017-09-15 2019-11-12 Snap Inc. Real-time tracking-compensated image effects
CN107704857B (zh) 2017-09-25 2020-07-24 北京邮电大学 一种端到端的轻量级车牌识别方法及装置
US10423861B2 (en) 2017-10-16 2019-09-24 Illumina, Inc. Deep learning-based techniques for training deep convolutional neural networks
US10672164B2 (en) 2017-10-16 2020-06-02 Adobe Inc. Predicting patch displacement maps using a neural network
US10614557B2 (en) 2017-10-16 2020-04-07 Adobe Inc. Digital image completion using deep learning
US10152970B1 (en) * 2018-02-08 2018-12-11 Capital One Services, Llc Adversarial learning and generation of dialogue responses
US11037019B2 (en) 2018-02-27 2021-06-15 Adobe Inc. Generating modified digital images by identifying digital image patch matches utilizing a Gaussian mixture model
US10839575B2 (en) 2018-03-15 2020-11-17 Adobe Inc. User-guided image completion with image completion neural networks
US10740881B2 (en) 2018-03-26 2020-08-11 Adobe Inc. Deep patch feature prediction for image inpainting
EP3781033A4 (de) 2018-04-19 2022-01-19 Subtle Medical, Inc. Systeme und verfahren zur verbesserung der magnetresonanztomografie unter verwendung von tiefem lernen
US10755391B2 (en) 2018-05-15 2020-08-25 Adobe Inc. Digital image completion by learning generation and patch matching jointly
US10380753B1 (en) * 2018-05-30 2019-08-13 Aimotive Kft. Method and apparatus for generating a displacement map of an input dataset pair
US11080895B2 (en) 2018-10-30 2021-08-03 International Business Machines Corporation Generating simulated body parts for images
US10878575B2 (en) 2019-04-15 2020-12-29 Adobe Inc. Foreground-aware image inpainting
US11055828B2 (en) 2019-05-09 2021-07-06 Adobe Inc. Video inpainting with deep internal learning

Also Published As

Publication number Publication date
US11436775B2 (en) 2022-09-06
US20190114818A1 (en) 2019-04-18
AU2018211354B2 (en) 2021-10-28
CN109671126B (zh) 2024-05-24
US10672164B2 (en) 2020-06-02
US20200202601A1 (en) 2020-06-25
AU2018211354A1 (en) 2019-05-02
CN109671126A (zh) 2019-04-23

Similar Documents

Publication Publication Date Title
DE102018006243A1 (de) Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes
DE102018006247A1 (de) Digitalbildvervollständigung unter Verwendung des Deep Learning
DE102020002964A1 (de) Verwenden eines neuronalen Netzwerks mit einer Zwei-Strom Encoder-Architektur zur Erzeugung digitaler Kompositbilder
DE112017002799B4 (de) Verfahren und system zum generieren multimodaler digitaler bilder
DE102020007951A1 (de) Einsetzen eines der Einfärbung dienenden neuronalen Netzwerkes zum Generieren von eingefärbten Bildern auf Grundlage interaktiver Farbkanten
DE10317917B4 (de) System und Verfahren zum Umgrenzen und Klassifizieren von Regionen innerhalb einer graphischen Abbildung
DE102020002152A1 (de) Klassifizieren von Farben von Objekten in Digitalbildern
DE102019005938A1 (de) Intelligentes Identifizieren von Ersetzungsbereichen zum Mischen und Ersetzen von Personen in Gruppenporträts
JP2022519469A (ja) 画像品質評価方法及び装置
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE69931549T2 (de) Vorrichtung und Verfahren zur Interpolation von Bilddaten
DE69211809T2 (de) Bilddatenverarbeitungsverfahren und -gerät
DE102019001663A1 (de) Zusammenstellungssensitive Digitalbildsuche
DE102019008221A1 (de) Interaktives Bildmattieren unter Verwendung neuronaler Netze
DE102017009276A1 (de) Erzeugen eines dreidimensionalen modells aus einem gescannten gegenstand
DE102014014944A1 (de) Füllen eines Zielbereichs unter Verwendung von Transformationen
DE60127016T2 (de) Verfahren und Gerät zur Durchführung einer lokalen Farbkorrektur
DE112018002793T5 (de) Bildverarbeitungssystem und bildverarbeitungsverfahren
DE102020003314A1 (de) Bildmanipulieren mit geometrischen und fotometrischen Transformationen
DE102015009683A1 (de) Cloudbasierte inhaltsspezifische Füllung für Bilder
DE102017005964A1 (de) Techniken zum Auswählen von Objekten in Bildern
WO2008015020A1 (de) Verfahren zum analysieren und/oder testen zumindest einer benutzeroberfläche, datenverarbeitungseinrichtung und computerprogrammprodukt
DE102020007465A1 (de) Steuern bzw. Regeln eines neuronalen Netzwerkes durch zwischengeschaltete Latenträume
DE102016014188A1 (de) Erzeugung eines 3-D-Modells aus 2-D-Bildern
DE102018006995A1 (de) Wieder Zusammensetzen und Reparieren von Teilen eines zerrissenen Bilds

Legal Events

Date Code Title Description
R082 Change of representative

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

R012 Request for examination validly filed