DE102019006149A1 - Begrenzungsbewusste Objektentfernung und Contentfüllung - Google Patents

Begrenzungsbewusste Objektentfernung und Contentfüllung Download PDF

Info

Publication number
DE102019006149A1
DE102019006149A1 DE102019006149.7A DE102019006149A DE102019006149A1 DE 102019006149 A1 DE102019006149 A1 DE 102019006149A1 DE 102019006149 A DE102019006149 A DE 102019006149A DE 102019006149 A1 DE102019006149 A1 DE 102019006149A1
Authority
DE
Germany
Prior art keywords
image
boundary
mask
objects
masks
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
DE102019006149.7A
Other languages
English (en)
Inventor
Sanjeev Tagra
Ajay Jain
Sachin Soni
Ajay Bedi
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 DE102019006149A1 publication Critical patent/DE102019006149A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • G06T5/77
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/75
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
    • G06T5/60
    • G06T5/94
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • 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
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/21Indexing scheme for image data processing or generation, in general involving computational photography
    • 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/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20104Interactive definition of region of interest [ROI]
    • 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/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • 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/20212Image combination
    • G06T2207/20224Image subtraction
    • 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

Abstract

Offenbart werden Systeme und Verfahren zum Entfernen von Objekten aus Bildern. Eine Bildverarbeitungsanwendung identifiziert eine Begrenzung eines jeden Objektes eines Satzes von Objekten in einem Bild. In einigen Fällen nutzt das Identifizieren Deep-Learning. Die Bildverarbeitungsanwendung identifiziert eine vervollständigte bzw. vollständige Begrenzung für jedes Objekt des Satzes von Objekten durch Bereitstellen des Objektes für ein trainiertes Modell. Die Bildverarbeitungsanwendung bestimmt einen Satz von Masken. Jede Maske entspricht einem Objekt des Satzes von Objekten und stellt einen Bereich des Bildes dar, der durch einen Schnitt der Begrenzung des Objektes und der Begrenzung eines Zielobjektes, das aus dem Bild entfernt werden soll, definiert ist. Die Bildverarbeitungsanwendung aktualisiert jede Maske durch separates Durchführen eines Contentfüllens an dem entsprechenden Bereich. Die Bildverarbeitungsanwendung erstellt ein Ausgabebild durch Zusammenführen einer jeden der aktualisierten Masken mit Abschnitten des Bildes.

Description

  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft allgemein die Entfernung von Objekten aus Digitalbildern. Insbesondere, jedoch nicht im Sinne einer Beschränkung, betrifft die vorliegende Offenbarung das Entfernen von Objekten aus Bildern unter Nutzung einer Objektbegrenzungsdetektion in Verbindung mit contentbewusstem Füllen.
  • Hintergrund
  • Während der Bearbeitung eines Bildes, so beispielsweise eines Fotos, möchte ein Grafikgestalter gegebenenfalls ein Zielobjekt entfernen. Beispielsweise möchte der Gestalter gegebenenfalls ein Spielzeug, das in der Mitte des Fotos eines Gartens vorhanden ist, oder ein Werbeschild aus dem Foto eines Hauses entfernen.
  • Bestehende Objektentfernungssoftwarewerkzeuge weisen jedoch Mängel auf. Einige Lösungen können beispielsweise nur ein Objekt, das vor einem einfachen Hintergrund auftritt, entfernen, da derartige Lösungen einfach den unerwünschten Bereich entfernen und das sich ergebende Loch automatisch unter Nutzung von Entnahmen aus anderen Teilen des Bildes füllen.
  • Weitere Lösungen verbessern diese Vorgehensweise durch gründlicheres Analysieren des Bereiches um das Loch herum, um eine geeignete Füllung für den fehlenden Content zu bestimmen. Derartige Lösungen scheitern jedoch beim Bestimmen der Begrenzungen eines Objektes, das von dem Zielobjekt verdunkelt bzw. verdeckt wird, was zu einer inakkuraten Contentfüllung führt. Derartige Lösungen können beispielsweise ein Blatt, das von einem Ball verdunkelt bzw. verdeckt wird, aufgrund ihrer Unfähigkeit, die Begrenzungen des Blattes zu analysieren und fehlende Teile der Begrenzung neuzuerstellen, nicht akkurat neuerstellen. Im Ergebnis füllen derartige Lösungen den fehlenden Teil des Blattes auf derartige Weise, dass das Blatt unecht aussieht.
  • Entsprechend werden Lösungen zur verlässlichen und akkuraten Objektentfernung und -füllung benötigt.
  • Zusammenfassung
  • Offenbart werden Systeme und Verfahren zum Entfernen von Objekten aus Bildern. Ein exemplarisches Verfahren greift auf ein Bild zu, das einen Satz von Objekten beinhaltet. Das Verfahren identifiziert eine vervollständigte bzw. vollständige Begrenzung für jedes Objekt des Satzes von Objekten durch Bereitstellen des Objektes für ein trainiertes Modell. Das Verfahren empfängt eine Auswahl eines Zielobjektes, das unter den Objekten entfernt werden soll. Das Verfahren bestimmt des Weiteren einen Satz von Masken. Jede Maske entspricht einem Objekt des Satzes von Objekten und stellt einen Bereich des Bildes dar, der durch einen Schnitt der Begrenzung des Objektes und der Begrenzung des Zielobjektes definiert ist. Das Verfahren aktualisiert jede Maske durch separates Durchführen eines Contentfüllens an dem entsprechenden Bereich. Das Verfahren erstellt ein Ausgabebild durch Zusammenführen einer jeden der aktualisierten Masken mit Abschnitten des Bildes.
  • Diese illustrativen Ausführungsformen sind nicht aufgeführt, um die Offenbarung zu beschränken oder zu definieren, sondern um Beispiele zur Förderung ihres Verständnisses bereitzustellen. Zusätzliche Ausführungsformen werden in der Detailbeschreibung erläutert, und die weitere Beschreibung erfolgt dort.
  • Figurenliste
  • Merkmale, Ausführungsformen und Vorteile der vorliegenden Offenbarung erschließen sich besser beim Studium der nachfolgenden Detailbeschreibung in Zusammenschau mit der begleitenden Zeichnung.
    • 1 ist ein Diagramm zur Darstellung eines Beispiels für Anwendungskomponenten, die zum Entfernen von Objekten aus Bildern benutzt werden, entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 2 zeigt ein Beispiel für eine Systemimplementierung zum Entfernen von Objekten aus Bildern entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 3 zeigt ein Beispiel für einen Prozess zum Entfernen von Objekten aus Bildern entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 4 zeigt Beispiele für Zwischenergebnisse und Endergebnisse einer Objektentfernungsumgebung entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 5 zeigt ein Beispiel für einen Prozess des Trainierens eines konditionalen, generativen, adversativen Netzwerkes zum Detektieren von Begrenzungen von Objekten entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 6 zeigt Beispiele für Trainingsdaten, die in 5 benutzt werden, entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 7 zeigt ein Beispiel für ein Rechensystem zum Entfernen von Objekten aus Bildern entsprechend einer Ausführungsform der vorliegenden Offenbarung.
  • Detailbeschreibung
  • Wie vorstehend erläutert worden ist, weisen bestehende Lösungen zum Entfernen von Objekten Mängel auf, die das unrealistische Contentfüllen entfernter Objekte beinhalten. Im Gegensatz hierzu erleichtern die hier beschriebenen Ausführungsformen eine akkuratere Objektentfernung durch Nutzen des Deep-Learning, um Begrenzungen von Objekten, die in einem Eingabebild vorhanden sind, zu detektieren, Ausfindigmachen von Schnitten zwischen jenen Objekten und Anwenden eines Contentfüllens an jedem Schnitt. In Folge dessen bieten die offenbarten Lösungen ein ästhetisch gefälligeres Ergebnis, da die Begrenzungen zugrunde liegender Objekte neuerstellt und die entfernten Objekte geeignet gefüllt werden.
  • Das folgende nichtbeschränkende Beispiel wird zu Erläuterungszwecken vorgestellt. Eine Bildverarbeitungsanwendung, die auf einer Rechenvorrichtung ausgeführt wird, greift auf ein fotografisches Bild zu. Das Bild stellt einen Gartentisch auf einem Rasen und eine Weinflasche auf dem Tisch dar. Ein oberer Bereich der Weinflasche verdunkelt bzw. verdeckt den Rasen, während ein unterer Bereich der Weinflasche den Tisch verdunkelt bzw. verdeckt. Die Anwendung empfängt von einem Grafikgestalter eine Eingabe dahingehend, die Weinflasche aus dem Bild zu entfernen.
  • Die Bildverarbeitungsanwendung identifiziert die Objekte innerhalb des Bildes, insbesondere den Tisch, den Rasen und die Weinflasche. Die Bildverarbeitungsanwendung identifiziert sodann die Begrenzungen oder Umrisse der detektierten Objekte. In einigen Fällen wird das Deep Learning, also beispielsweise konditionale, generative, adversative Netzwerke (englisch: conditional generative adversarial networks) benutzt. Wiederum bei dem Beispiel bestimmt die Anwendung einen ersten Bereich oder eine solche Maske entsprechend einem Schnitt oder einer Überlappung zwischen der Flasche und dem Rasen und einen zweiten Bereich oder eine solche Maske entsprechend einer Überlappung der Flasche und des Tisches.
  • Ist jeder Bereich detektiert, so füllt die Bildverarbeitungsanwendung die Masken mit einer contentbewussten Füllung beispielsweise auf Grundlage des Contents des Objektes, auf dem die Form basiert, aus oder vervollständigt diese. Das contentbewusste Füllen impliziert ein Neuerstellen von geeignetem Content auf Grundlage bestehenden Contents eines Objektes, um den Leerraum einer Maske zu füllen. Um beispielsweise den Bereich des Rasens, der vorher vom oberen Teil der Weinflasche verdeckt worden ist, auszufüllen, nutzt das die Bildverarbeitungsanwendung Content aus dem restlichen Rasen, um die Maske intelligent zu vervollständigen. Die Anwendung füllt die erste Maske ohne Rücksicht auf die zweite Maske und umgekehrt. Sobald die beiden Masken gefüllt sind, kombiniert die Anwendung die Bereiche in dem Ausgabebild, das wie das Original, jedoch ohne die Weinflasche, ist.
  • Die offenbarten Lösungen stellen technische Verbesserungen auf dem Gebiet der Bildobjektentfernung bereit. Gewisse Ausführungsformen nutzen beispielsweise verbesserte Verfahren des Generierens von Trainingsdaten für konditionale, generative, adversative Netzwerke und nutzen die trainierten Netzwerke sodann dafür, Begrenzungen verdunkelter bzw. verdeckter Objekte, für die keine vollständige Begrenzung verfügbar ist, zu identifizieren. Insbesondere generiert eine Bildverarbeitungsanwendung einen Satz von robusten Trainingsdaten, der Bilder, die Objekte darstellen, bei denen Begrenzungen bekannt sind, und modifizierte Bilder, bei denen Begrenzungen künstlich verdunkelt bzw. verdeckt worden sind, beinhaltet. Das konditionale, generative, adversative Netzwerk wird sodann bezüglich dieses Datensatzes trainiert. Unter Nutzung des Netzwerkes können gewisse Ausführungsformen fehlende Begrenzungen von Objekten vervollständigen. Indem des Weiteren ein contentbewusstes Füllen in Bereichen aus verschiedenen überlappenden Objekten separat angewendet wird, stellen Ausführungsformen eine realistischere Objektentfernung als bisherige Lösungen bereit.
  • Zusätzlich stellen die offenbarten Lösungen technische Verbesserungen gegenüber Lösungen bereit, die Segmentierungsetiketten (beispielsweise bezüglich des Typs von Objekten, die in dem Bild vorhanden sind) vorhersagen, jedoch daran scheitern, die Begrenzung eines jeden Objektes in dem Bild vorherzusagen und jeden Schnitt zwischen Objekten und dem Zielobjekt zu bestimmen. Im Gegensatz hierzu sagen offenbarte Lösungen ein Segmentierungsetikett einer fehlenden Fläche vorher und generieren dadurch Information über einen vorhergesagten Objektort und Formdetails des Zielobjektes. Offenbarte Lösungen können eine Segmentierungsmaske mit dem Eingabebild kombinieren, um eine vollständige Vorhersage zu machen. Indem ein Segmentierungsprozess auf diese Weise geführt wird, kombinieren offenbarte Lösungen die Stärke von generativen Deep-Modellen mit Segmentierungsinformation, was zu realistischeren Vorhersagen insbesondere für Begrenzungen zwischen verschiedenen Objekten führt. Zusätzlich stellen offenbarte Lösungen im Vergleich zu bisherigen Lösungen, die nur eine einzige Vorhersage bei einem gegebenen Eingabebild machen können, interaktive und multimodale Vorhersagen bereit.
  • Im Sinne der Offenbarung bezeichnet „Bild“ eine elektronische Darstellung von Fotos, Bildern, Text, Nutzerschnittstellenelementen und dergleichen. Beispiele für Bilder beinhalten Dokumente von Adobe® Photoshop®, Dokumente von Adobe® Illustrator® oder Dokumente von Adobe® InDesign®. Ein Bild kann ein oder mehrere Objekte beinhalten.
  • Im Sinne der vorliegenden Offenbarung bezeichnet „Objekt“ eine diskrete Komponente eines Bildes. Exemplarische Objekte beinhalten Formen, Buchstaben, Textkästchen, Hintergrundobjekte und dergleichen mehr. Jedes Objekt weist eine Begrenzung auf.
  • Im Sinne des Vorliegenden bezeichnen „Begrenzung“ oder „Umriss“ eines Objektes eine äußere Einfassung (perimeter) um das Objekt herum. Eine Begrenzung um eine Orange herum kann beispielsweise ein Kreis oder nahezu ein Kreis sein. Begrenzungen komplexerer Objekte können auch nichtlinear sein, was beispielsweise bei einem Blatt oder einem Tier der Fall ist.
  • Im Sinne des Vorliegenden bezeichnen „Bereich“ oder „Maske“ eine Datenstruktur, die gewisse Pixel eines Bildes für eine bestimmte Nutzung identifiziert oder bezeichnet. Eine Maske kann beispielsweise Pixel in einem zu füllenden Loch identifizieren.
  • Von den Figuren ist 1 ein Diagramm zur Darstellung eines Beispiels für Anwendungskomponenten, die zum Entfernen von Objekten aus Bildern benutzt werden, entsprechend einer Ausführungsform der vorliegenden Offenbarung. 1 zeigt eine Bildverarbeitungsumgebung 100, die ein Eingabebild 110, ein Rechensystem 101 und ein Ausgabebild 140 beinhaltet. Das Rechensystem 110, von dem ein Beispiel anhand 6 detaillierter beschrieben wird, führt eine Bildverarbeitungsanwendung 102 aus und nutzt ein Modell maschinellen Lernens 105.
  • Das Eingabebild 110 beinhaltet ein erstes Objekt 112 (ein Quadrat) und ein zweites Objekt 113 (ein Oval). Wie ersichtlich ist, verdunkelt bzw. verdeckt das Objekt 113 das Objekt 112 in der unteren, rechten Ecke des Objektes 112 teilweise. Da das Eingabebild 110 ein digitalisiertes Foto oder ein gerendertes bzw. wiedergegebenes Bild, das Pixel enthält, sein kann, bestimmt die Bildverarbeitungsanwendung 102 die Objekte 112 oder 113 und ihre Begrenzungen. Die Bildverarbeitungsanwendung 102 empfängt sodann eine Bezeichnung des Objektes 113 als Zielobjekt. Die Bildverarbeitungsanwendung 102 bestimmt wiederum die Begrenzungen der Objekte 112 und 113, bestimmt einen Schnitt zwischen den Objekten 112 und 113 und wendet auf den Schnitt das Contentfüllen an. Wie ersichtlich ist, zeigt das Ausgabebild 140 ein Objekt 142, das dem Objekt 112 entspricht.
  • Für Eingabebilder mit mehr Objekten identifiziert die Bildverarbeitungsanwendung 102 mehr Masken und wendet das Contentfüllen separat auf die entsprechenden Objektschnitte an. Die Bildverarbeitungsanwendung 102 führt die Schnitte oder Masken sodann in dem Ausgabebild 140 zusammen. 2 zeigt ein zusätzliches Beispiel, das mehr Objekte beinhaltet.
  • In einigen Fällen kann die Bildverarbeitungsanwendung 102 das Modell maschinellen Lernens 105 nutzen, um eine oder mehrere Aufgaben auszuführen. Wie dargestellt ist, ist das Modell maschinellen Lernens 105 beispielsweise ein konditionales, generatives, adversatives Modell, das ein generatives Modell 106 und ein diskriminatives Modell 107 beinhaltet. Die Bildverarbeitungsanwendung 102 kann das generative Modell 106 und das diskriminative Modell 107 durch Nutzung von Trainingsdaten 108 generieren. Ein exemplarischer Trainingsprozess wird anhand 5 erläutert, wobei jedoch auch andere Prozesse benutzt werden können.
  • Andere Modelle maschinellen Lernens können indes ebenfalls in der Bildverarbeitungsumgebung 100 vorhanden sein. Andere Beispiele für geeignete Modelle, die bei dem Modell maschinellen Lernens 105 eingesetzt werden, sind prädiktive bzw. vorhersagebasierte Modelle, Klassifizierungsmodelle, generative Modelle und diskriminative Modelle. Des Weiteren können zusätzliche Modelle von der Bildverarbeitungsanwendung 102 beispielsweise zur Durchführung anderer Aufgaben benutzt werden. Einsetzen kann die Bildverarbeitungsanwendung 102 beispielsweise ein erstes Modell maschinellen Lernens zur Durchführung einer Objektdetektion und ein zweites Modell maschinellen Lernens zur Durchführung einer Objektbegrenzungsdetektion. Auf ähnliche Weise kann das maschinelle Lernen zur Durchführung des contentbewussten Füllens benutzt werden.
  • 2 zeigt ein Beispiel für eine Systemimplementierung zur Entfernung von Objekten aus Bildern entsprechend einer Ausführungsform der vorliegenden Offenbarung. 2 zeigt eine Objektentfernungsumgebung 200, die ein Objektdetektionsmodul 250, ein Objektbegrenzungsmodul 252, ein Objektschnittmodul 253 und ein Contentfüllmodul 254 beinhaltet. Die Module sind zu exemplarischen Zwecken getrennt; die hier beschriebene Funktionalität kann über eine Anzahl von Modulen, die in der Bildverarbeitungsanwendung 102 beinhaltet sind, implementiert sein. Zusätzlich können ein oder mehrere Module die Fähigkeit maschinellen Lernens nutzen.
  • Die Objektentfernungsumgebung 200 zeigt zudem Eingaben und Ausgaben in verschiedenen Phasen. Insbesondere beinhaltet die Objektentfernungsumgebung 200 ein Eingabebild 211, eine Maske 260, eine Maske 261 und ein Ausgabebild 240. In einigen Fällen kann die Bildverarbeitungsanwendung 102 Zwischenschritte zur Fehlerbeseitigung (debugging) oder zu darstellerischen Zwecken ausgeben.
  • Das Objektdetektionsmodul 250 empfängt das Eingabebild 211, das ein Objekt 212, ein Objekt 213 und ein Objekt 214 beinhaltet. Das Objekt 213 wird als Zielobjekt oder als Objekt, das aus dem Eingabebild 211 entfernt werden soll, bezeichnet. Wie ersichtlich ist, schneidet das Objekt 213 das Objekt 212 und das Objekt 214. Das Objektbegrenzungsmodul 252 detektiert die Begrenzungen der Objekte 212 und 213. Zu exemplarischen Zwecken sind zwei Objekte gezeigt. Für den Fall, dass das Eingabebild 211 mehr als zwei Objekte beinhaltet, bestimmt das Objektbegrenzungsmodul 252 eine Begrenzung für jedes zusätzliche Objekt.
  • Das Objektschnittmodul 253 bestimmt, ob das Objekt 212 oder das Objekt 214 das Objekt 213 schneiden. Wie in dem Eingabebild 211 dargestellt ist, schneiden sowohl das Objekt 212 wie auch das Objekt 214 das Objekt 213. Das Objektschnittmodul 253 bestimmt den Schnitt von Objekten durch Analysieren von Vektoren, die die Objekte 212 bis 214 darstellen. Das Objektschnittmodul 253 gibt eine Maske 260, die den Schnitt zwischen dem Objekt 212 und dem Objekt 213 darstellt, und eine Maske 261, die den Schnitt zwischen (den Objekten) 214 und 213 darstellt, aus. Für den Fall, dass das Eingabebild 211 mehr als zwei Objekte, die das Zielobjekt schneiden, beinhaltet, können zusätzliche Schnitte bestimmt werden.
  • Das Contentfüllmodul 254 empfängt die Maske 261 und 262 und führt das Füllen der Flächen aus. Wie weiter erläutert wird, können verschiedene Füllverfahren, so beispielsweise das contentbewusste Füllen, benutzt werden. Wie ersichtlich ist, beinhaltet das Ausgabebild 240 das Objekt 242 entsprechend dem Objekt 212 und das Objekt 243 entsprechend dem Objekt 214. Die Objekte 242 und 243 sind gefüllt und sehen im Wesentlichen ähnlich aus, als ob die Objekte ohne das Objekt 213 davor gezeichnet worden wären.
  • 3 zeigt ein Beispiel für einen Prozess 300 zum Entfernen von Objekten aus Bildern entsprechend einer Ausführungsform der vorliegenden Offenbarung. Die Bildverarbeitungsanwendung 102 kann einen Prozess 300 implementieren, wobei jedoch auch andere Softwareanwendungen und Rechensysteme den Prozess 300 implementieren können. Zu exemplarischen Zwecken wird 3 unter Bezugnahme auf 4 erläutert.
  • Bei Block 301 impliziert der Prozess 300 ein Zugreifen auf ein Bild, das Objekte beinhaltet. Die Bildverarbeitungsanwendung 102 greift auf ein Eingabebild zu. Die Bildverarbeitungsanwendung 102 kann ein Eingabebild von einer externen Vorrichtung oder aus einer Datei empfangen. Alternativ kann die Bildverarbeitungsanwendung 102 das Eingabebild in Reaktion auf nutzerseitige Zeichenbefehle erstellen.
  • 4 zeigt Beispiele für Zwischenergebnisse und Endergebnisse einer Objektentfernungsumgebung entsprechend einer Ausführungsform der vorliegenden Offenbarung. 4 zeigt ein Eingabebild 401, Schnittbereiche 402-403, gefüllte Bilder 404-405 und ein Ausgabebild 406. Bei Block 301 greift die Bildverarbeitungsanwendung 102 auf das Eingabebild 401 zu.
  • Wie ersichtlich ist, stellt das Eingabebild 401 einen Swimmingpool 410, der sich auf Gras 411 befindet, mit einem hölzernen Objekt 412 dar, das einen Teil des Swimmingpools 410 und einen Teil des Grases 411 verdunkelt bzw. verdeckt. Die Bildverarbeitungsanwendung 102 nutzt das Objektdetektionsmodul 250, um den Swimmingpool 410 und das Gras 411 zu identifizieren. Es können verschiedene Verfahren zur Objektidentifikation benutzt werden. Das Modell maschinellen Lernens 105 kann beispielsweise ein trainiertes Klassifikationsmodell sein, das das Vorhandensein eines Bildes auf Grundlage eines Trainingssatzes von bekannten Bildern (beispielsweise Objekte, Pflanzen, Tiere, Gesichter, Autos und dergleichen) detektieren kann. Zusätzliche Verfahren zur Objektidentifizierung beinhalten das Template Matching, die Lineardiskriminantenanalyse (Linear Discriminant Analysis LDA) und Support Vector Machines (SVMs).
  • Bei Block 302 impliziert der Prozess 300 das Identifizieren einer vervollständigten bzw. vollständigen Begrenzung für jedes Objekt. In einigen Fällen kann die Bildverarbeitungsanwendung 102 ein trainiertes, konditionales, generatives, adversatives Netzwerk zum Detektieren der Begrenzungen von Objekten nutzen. Insbesondere stellt die Bildverarbeitungsanwendung 102 jedes Objekt für das Modell bereit, und das Modell wiederum stellt eine Ausgabe bereit, die die vervollständigte bzw. vollständige Begrenzung des Objektes darstellt.
  • Einige Objektbegrenzungen können vervollständigt werden (sodass sie nicht von einem anderen Objekt verdunkelt bzw. verdeckt sind). Andere Begrenzungen, so beispielsweise die Begrenzungen von Objekten, die von dem Zielobjekt verdeckt bzw. verdunkelt werden, können unvollständig sein. Die Bildverarbeitungsanwendung 102 detektiert diese Begrenzungen.
  • Beschrieben wurden generative, adversative Netzwerke erstmalig in „Generative Adversarial Networks“ von lan J. Goodfellow et al., veröffentlicht bei Departement d'informatique et de recherche operationelle, Universite de Montreal, 2014. Generative, adversative Netzwerke nutzen einen Generator zum Generieren neuer Instanzen bzw. Versionen von Daten und einen Diskriminator zur Bewertung dessen, ob diese Instanzen bzw. Versionen zu dem Trainingsdatensatz gehören oder nicht.
  • Diskriminative Modelle versuchen, Eingabedaten zu klassifizieren. Ein diskriminatives Modell kann beispielsweise dafür trainiert werden, vorherzusagen, ob eine E-Mail-Nachricht Spam oder kein Spam ist oder ob ein Bild einen Hund oder keinen Hund darstellt. Insbesondere bilden diskriminative Modelle Merkmale (die in der Eingabe detektiert werden) auf Etiketten ab.
  • Im Gegensatz hierzu versuchen generative Modelle zu bestimmen, wie eine bestimmte Vorhersage erreicht wird. Ein generatives Modell versucht beispielsweise zu verstehen, warum das Bild eines Hundes als Hund klassifiziert wird. Anstelle der Vorhersage eines Etiketts bei gegebener Eingabe versuchen generative Modelle, Merkmale vorherzusagen, die mit einem bestimmten Etikett (beispielsweise dem Hund) in Beziehung stehen.
  • Unter Nutzung des trainierten Modells können Begrenzungen komplizierter Formen neuerstellt werden. Während beispielsweise die Begrenzung einer regelmäßigen Form in einigen Fällen relativ einfach (beispielsweise durch lineare Vervollständigung) neuzuerstellen ist, sind Begrenzungen anderer Objekte schwieriger neuzuerstellen. Die Begrenzung eines Blattes ist beispielsweise unvollständig, da die Begrenzung von dem Zielobjekt, das entfernt werden soll, verdunkelt bzw. verdeckt wird. Unter Nutzung eines trainierten, konditionalen, generativen, adversativen Netzwerks erstellt die Bildverarbeitungsanwendung 102 die Begrenzung des Blattes neu, was kompliziert und nichtlinear sein kann. Ein exemplarischer Prozess zum Trainieren eines konditionalen, adversativen Netzwerkes wird anhand 5 beschrieben.
  • Wiederum bei dem Beispiel identifiziert die Bildverarbeitungsanwendung 102 eine Begrenzung für den Schwimmingpool 410 und das Gras 411.
  • Bei Block 303 impliziert der Prozess 300 ein Empfangen einer Auswahl eines Objektes als Zielobjekt zu Entfernung als Bild. Die Bildverarbeitungsanwendung 102 kann die Auswahl des Zielobjektes von einer Nutzerschnittstelle oder einer anderen Eingabe empfangen. Auf Grundlage der Identifikation eines Objektes als Zielobjekt macht die Bildverarbeitungsanwendung 102 bei Block 304 weiter, um Schnitte zwischen Begrenzungen anderer Objekte mit dem Zielobjekt zu identifizieren. Wiederum bei dem Beispiel empfängt die Bildverarbeitungsanwendung 102 eine Identifikation dahingehend, dass das hölzerne Objekt 412 das zu entfernende Zielobjekt ist.
  • Bei Block 304 impliziert der Prozess 300 ein Bestimmen eines Satzes von Masken. Jede Maske kann einem Objekt entsprechen und einen Bereich des Bildes darstellen, der durch einen Schnitt der Begrenzung des Objektes und der Begrenzung des Zielobjektes definiert ist. Wiederum bei dem Beispiel identifiziert die Bildverarbeitungsanwendung 102 die Maske 420 (in Bild 402 gezeigt) und 421 (in Bild 403 gezeigt). Insbesondere stellt die Maske 420, die dem Swimmingpool 410 entspricht, einen Schnittbereich zwischen dem Swimmingpool 410 und dem hölzernen Objekt 412 dar. Die Maske 421, die dem Gras 411 entspricht, stellt einen Schnittbereich zwischen dem Gras 411 und dem hölzernen Objekt 412 dar.
  • Bei Block 305 impliziert der Prozess ein Aktualisieren des Satzes von Masken durch separates Durchführen eines Contentfüllens an dem entsprechenden Bereich. Es können verschiedene Verfahren zum Füllen benutzt werden. Bei einem Beispiel nutzt die Bildverarbeitungsanwendung 102 das contentbewusste Füllen zum Füllen des entsprechenden Bereiches oder Loches, der/das durch jede Maske identifiziert wird. Es sind verschiedene Typen von contentbewusstem Füllen möglich.
  • Im Allgemeinen strebt ein Algorithmus des contentbewussten Füllens danach, das Loch (den von der Maske dargestellten Teil) dadurch annähernd bzw. approximativ zu rekonstruieren, dass er kleine, quadratische Patches von Pixeln aus dem vorhandenen Rest des Objektes (beispielsweise einem Entnahmebereich) umordnet und zusammenstückelt. Insbesondere identifiziert das contentbewusste Füllen einen annähernden passenden Patch aus dem Entnahmebereich für die Maske. Es werden Kandidatenpatches aus dem Objekt ausgewählt, getestet und auf iterative Weise verfeinert. Eine sich ergebende Rekonstruktion kann die Fläche, die von der Maske dargestellt wird, auf eine Weise füllen, dass sie wie der durch die Maske dargestellte Abschnitt aussieht, also beispielsweise so, als wäre der Schnitt zwischen dem bestimmten Objekt und dem Zielobjekt nie verdunkelt bzw. verdeckt gewesen.
  • In einigen Fällen kann das contentbewusste Füllen objektbegrenzungsbewusst sein. Die Vorgehensweise des contentbewussten Füllens kann beispielsweise eine Fläche innerhalb der Begrenzungen der zu füllenden Form analysieren und Flächen außerhalb der Begrenzungen vernachlässigen, was in einigen Fällen bessere Ergebnisse liefert.
  • In einigen Fällen kann ein patchbasierter Synthetisierer benutzt werden, um das Contentfüllen durchzuführen. Empfangen werden bei einem Beispiel eine erste Nutzereingabe, die das zu füllende Loch in dem Originalbild spezifiziert, und eine zweite Nutzereingabe, die einen Entnahmebereich eines Originalbildes, aus dem Pixel entnommen werden können, beinhaltet, wobei der Entnahmebereich das Loch ausschließt. Benutzt werden eine Randbedingungsmaske zur Speicherung des Entnahmebereiches und ein patchbasierter Synthetisierer, der dafür konfiguriert ist, das Zielbild aus Patches zu synthetisieren, die aus dem Entnahmebereich, der durch die Randbedingungsmaske spezifiziert ist, entnommen worden sind.
  • Durchführen kann der patchbasierte Synthetisierer beispielsweise eine Patchsynthese unter Nutzung eines randomisierten Algorithmus des Generierens und Bewertens von Kandidatenpatches und Identifizierens von angenäherten Nächster-Nachbar-Treffern zwischen Bildpatches. Um ein gegebenes Zielbild (beispielsweise ein Loch) unter Nutzung von Bildpatches, die aus einem Quellbild transformiert werden, zu konstruieren, kann eine Datenstruktur, die Nächster-Nachbar-Feld (Next Neighbor Field NNF) genannt wird, benutzt werden, um Abbildungen zwischen Patches in den Quell- und Zielbildern zu verwalten. Das NNF beinhaltet eine Transformation für jedes Pixel in dem Zielbild. Die Transformationen können Ähnlichkeitstransformationen beinhalten. Für ein gegebenes Pixel identifiziert die Transformation in dem NNF für jenes Pixel einen entsprechenden Quellpatch, der auf Ähnlichkeit zu einem Zielpatch, der dem Pixel zugeordnet ist, getestet werden kann. Das Ziel des patchbasierten Synthetisierers besteht im Identifizieren eines Quellpatches (beispielsweise aus einem verwendbaren Entnahmebereich), der am besten zu jedem Zielpatch (das heißt zum nächsten Nachbarn) passt. Das NNF-Feld kann unter Nutzung verschiedener Phasen des Syntheseprozesses aktualisiert werden, um den Nächster-Nachbar-Quellpatch für jeden Zielpatch zu verfolgen.
  • Der patchbasierte Synthetisierer kann einen iterativen Prozess des Initialisierens, Suchens, Votierens und Hochskalierens bzw. Hochstufens (upsclaing) für jede Skala bzw. Stufe einer Mehrskalen- bzw. Mehrstufenlösung implizieren. Beispielsweise weist für jedes Zielpixel aus einem Zielbild (beispielsweise bei einem Loch) eine Initialisierungskomponente eine zufällig generierte Transformation als Initialisierung zu. Diese Transformationen können Ähnlichkeitstransformationen beinhalten. Ähnlichkeitstransformationsparameter können nutzerseitig ausgewählt, vorbestimmt oder auch eine Kombination aus beidem oder anderes sein. Im Allgemeinen sind die zufällig generierten Transformationen über die anwendbaren Ähnlichkeitstransformationsparameter (beispielsweise Translation, Skala bzw. Stufe, Drehung und/oder Spiegelung bezüglich Suchdomänen) beschränkt. Eine Patchverwendbarkeitskomponente bestimmt bisweilen die Verwendbarkeit eines jeden Kandidatenpatches. Für Kandidatenquellpatches, die den Patchverwendbarkeitstest nicht bestehen, weist eine Initialisierungskomponente eine neue zufällig generierte Transformation zu, um den durchgefallenen Kandidatenpatch zu ersetzen, und es wird der Patchverwendbarkeitstest wiederholt. Wird ein Patchverwendbarkeitstest eine vorbestimmte Anzahl von Malen (beispielsweise 256 Mal) nicht bestanden, so kann ein Kandidatenpatch generiert werden, indem der verwendbare Entnahmebereich (beispielsweise durch Weiten des Loches) verkleinert wird, die entsprechende Suchdomäne beschränkt wird oder indem eine zufällig generierte, einfache Translation anstelle einer vollen Ähnlichkeitstransformation benutzt wird. Diese alternative Technik zum Generieren eines verwendbaren Kandidatenpatches kann per se benutzt werden.
  • Im Allgemeinen führt der patchbasierte Synthetisierer eine Suche durch, um Kandidatenpatches zu identifizieren, die das NNF verbessern. Eine Patchverwendbarkeitskomponente bestimmt die Verwendbarkeit eines jeden Kandidatenpatches. Fällt ein Kandidatenquellpatch beim Patchverwendbarkeitstest durch, so wird der Kandidatenpatch nicht benutzt, um das NNF zu verbessern. Kandidatenpatches, die die Patchverwendbarkeit bestehen, werden bewertet, um zu bestimmen, ob ein gegebener Kandidatenpatch ein besserer Treffer für einen bestimmten Zielpatch als ein vorhandener nächster Nachbar in dem NNF ist (beispielsweise ob ein Kandidatenpatch einen Patchabstand verkleinert). Mit anderen Worten, das NNF ist das Minimum des NNF und des vorherigen NNF.
  • Bei einigen Ausführungsformen können eine Verbreitungssuchkomponente und eine Zufallssuchkomponente Kandidatenpatches auf eine Weise identifizieren, die eine deterministische Füllsynthese erleichtert. Bei herkömmlichen Techniken kann ein bezeichnetes Loch in mehrere Untereinteilungen zur parallelen Verarbeitung durch verschiedene Threads aufgeteilt werden. Bei einem Beispiel kann ein Loch in drei Untereinteilungen aufgeteilt werden, wobei jeder von drei Threads eine entsprechende Untereinteilung parallel verarbeitet. Bei herkömmlichen Techniken verarbeitet ein bestimmter Thread jedes Pixel in einer zugeteilten Untereinteilung in der Entnahmelinienreihenfolge. Für ein gegebenes Pixel verbreitet eine Verbreitungssuchkomponente beispielsweise Lösungen für benachbarte Pixel und wählt die beste Lösung aus. Die Zufallssuchkomponente identifiziert Lösungen für zufällig identifizierte Pixel und wählt die beste Lösung aus, und der zugewiesene Thread bewegt sich zum nächsten Pixel in der Entnahmelinienreihenfolge weiter. Da einige Threads jedoch das Generieren einer Füllung für eine zugewiesene Untereinteilung gegebenenfalls schneller als andere Threads beenden, werden Füllungen für eine Untereinteilung oftmals unter Nutzung von Patches generiert, die aus einer unvollständigen Füllung für eine benachbarte Untereinteilung entnommen sind.
  • Bei einigen Ausführungsformen kann ein bezeichnetes Loch in mehr Untereinteilungen als Threads aufgeteilt werden, und es können mehrere Threads zugeteilt werden, um nur nicht angrenzende (non-bordering) Untereinteilungen parallel zu verarbeiten. Bei einem einfachen Prozess wird davon ausgegangen, dass ein Loch in sechs Blöcke 0 bis 5 aufgeteilt wird. Für geradzahlige Iterationen eines patchbasierten Synthetisierers können drei Threads abwechselnde Blöcke (beispielsweise 0, 2, 4) in der Entnahmelinienreihenfolge verarbeiten. Während ungeradzahliger Iterationen können die Threads abwechselnde Blöcke in der umgekehrten Entnahmelinienreihenfolge verarbeiten (beispielsweise 1, 3, 5). Da benachbarte Untereinteilungen vollständige Füllungen bis zu dem Zeitpunkt aufweisen, zu dem ein beliebiger Thread die Verarbeitung einer bestimmten Untereinteilung beendet, ist der Zeitpunkt, zu dem jeder Thread die Verarbeitung seiner zugeteilten Untereinteilung beendet, nicht von Belang. Als solches kann das Zuteilen mehrerer Threads zur parallelen Verarbeitung von nicht angrenzenden (non-bordering) Untereinteilungen deterministische Ergebnisse erzeugen.
  • Bei anderen Ausführungsformen kann eine Wellenfronttechnik angewendet werden, um Kandidatenpatches zu identifizieren, was eine deterministische Füllsynthese erleichtert. Allgemein ist die Wellenfrontverarbeitung eine Technik zum Verarbeiten eines mehrdimensionalen Gitters, bei dem eine bestimmte Einheit in dem Gitter von anderen Einheiten in dem Gitter abhängt. Beginnend in einer Ecke schreitet die Verarbeitung in einer Diagonalbewegung (sweep), die einer Wellenfront ähnelt, über das Gitter fort. Im Zusammenhang mit einer patchbasierten Synthese kann eine Suche unter Nutzung einer Wellenfront anstatt in einer Entnahmelinienreihenfolge implementiert werden (die Verbreitungssuchkomponente kann beispielsweise Lösungen für ein benachbartes Pixel darüber und für ein benachbartes Pixel links davon verbreiten). Ein Zufallszahlengenerator, der von der Zufallssuchkomponente auf zufällig identifizierte Pixel angewendet wird, kann zudem modifiziert sein. Zufallszahlengeneratoren sind üblicherweise dafür gestaltet, eine bekannte Sequenz von gleichförmigen Zahlen bei gegebener Saat (seed) zu generieren. Für eine Wellenfrontverarbeitung werden zur Erzeugung einer deterministischen Patchsynthese x, y, die Iteration des patchbasierten Synthetisierers und die Iteration der Zufallssuche als Eingaben zum Generieren einer gleichförmigen Zahl angenommen. Auf diese Weise erzeugt für einen gegebenen Pixelwert (x, y) eine gegebene Sequenz von Aufrufen an dem Zufallszahlengenerator dieselben Ergebnisse. Auf diese Weise kann ein deterministischer Satz von Kandidatenpatches identifiziert werden, was eine deterministische Füllsynthese erleichtert. Weitere Abwandlungen erschließen sich einem Durchschnittsfachmann auf dem Gebiet.
  • Allgemein führt der patchbasierte Synthetisierer ein Votieren durch, um ein vorgeschlagenes Zielbild zu generieren. Allgemein wird das Patchvotieren durchgeführt, um die Pixelfarben eines jeden schneidenden Nachbarpatches zu akkumulieren bzw. anzusammeln, und es werden die Farbvotierungen gewichtet gemittelt. Das vorgeschlagene Zielbild kann an eine Nutzerschnittstelle zur Präsentation als Vorschau weitergeleitet werden. Wie vorstehend erläutert worden ist, wird das vorgeschlagene Zielbild während jeder nachfolgenden Iteration aktualisiert, und das aktualisierte Zielbild kann an das Front-End für jede Iteration weitergeleitet werden. Das Ergebnis ist eine allmähliche Aktualisierung, also eine Live-Vorschau. Diese allmählichen Aktualisierungen können für einen Nutzer eine schnelle Echtzeitrückmeldung und eine frühere Gelegenheit dafür bereitstellen, gewünschte Änderungen vorzunehmen, um zu einer gewünschten Füllung zu gelangen.
  • Der patchbasierte Synthetisierer führt ein Hochskalieren bzw. Hochstufen (beispielsweise mittels einer Hochskalierungs- bzw. Hochstufungskomponente zum Hochskalieren bzw. Hochstufen des aktuellen NNF zur Nutzung als Basislinie während einer nachfolgenden Iteration auf der nächsten Skala bzw. Stufe) durch. Da dieses Hochskalieren bzw. Hochstufen nichtverwendbare Patches erzeugen kann, bestimmt eine Patchverwendbarkeitskomponente vorteilhafterweise die Verwendbarkeit von Kandidatenpatches, die dem hochskalierten bzw. hochgestuften NNF entsprechen. Kandidatenpatches, die die Patchverwendbarkeit bestehen, werden während einer nachfolgenden Iteration des patchbasierten Synthetisierers bewertet, um zu bestimmen, ob ein gegebener Kandidatenpatch ein besserer Treffer für einen bestimmten Zielpatch im Vergleich zu einem entsprechenden Kandidatenpatch, der aus einem zufällig initialisierten NNF generiert ist, ist.
  • Allgemein wird der Ablauf durch den patchbasierten Synthetisierer für nachfolgende Pyramidenskalen bzw. -stufen wiederholt, bis eine Lösung mit voller Auflösung generiert ist und zur Präsentation gegenüber einem Nutzer an das Front-End weitergeleitet wird. Bei einigen Ausführungsformen kann ein patchbasierter Synthetisierer pausieren (break), wenn irgendeine Komponente einen (beispielsweise durch den Nutzer) aktualisierten Entnahmebereich und/oder eine anwendbare Translation, Skala bzw. Stufe, Drehung und/oder Spiegelung mit Blick auf die Suchdomäne detektiert. Bei diesem Szenario kann der patchbasierte Synthetisierer getätigte Berechnungen neuverwenden, um die Geschwindigkeit zu verbessern und unnötige Neuberechnungen zu vermeiden, wie vorstehend detaillierter beschrieben worden ist, und kann mit der Verarbeitung des aktualisierten Entnahmebereiches und/oder der Suchdomäne automatisch beginnen. Zusätzlich und/oder alternativ kann der patchbasierte Synthetisierer ein vorgeschlagenes Zielbild zur Präsentation als Vorschau weiterleiten und mit seinem Prozess pausieren (break), um eine Nutzereingabe vor dem vervollständigen der Füllung zu erleichtern, wie vorstehend detaillierter beschrieben worden ist. Eine Nutzerangabe dahingehend, mit der Verarbeitung weiterzumachen, kann bewirken, dass der patchbasierte Synthetisierer die verbleibenden Auflösungen, wie vorstehend detaillierter beschrieben worden ist, berechnet.
  • In einigen Fällen bzw. einer Anzahl von Fällen beinhaltet/beinhalten das Loch / die Löcher, das/die durch das contentbewusste Füllen gefüllt worden ist/sind, jedoch unrichtigen Bildcontent, was ein nicht gefälliges und unnatürliches Ergebnis erzeugt. Durch Beschränken der Kandidatenpatches auf zweidimensionale Translationen kann beispielsweise die mögliche Qualität des rekonstruierten Zielbildes beschränkt werden. CAF-Techniken sind jedoch per se rechentechnisch aufwändig, und das bloße Erweitern der Suchdomänenergebnisse führt zu einem nicht hinnehmbaren Anstieg der Rechenzeit.
  • In einigen Fällen kann entsprechend eine Nutzereingabe angefordert werden. Das interaktive System beinhaltet eine Nutzerschnittstelle, die ermöglicht, dass ein Nutzer ein Loch und einen Entnahmebereich zur Nutzung beim Füllen des Loches spezifiziert. Der Entnahmebereich, der allgemein das Loch ausschließt, kann in einer Randbedingungsmaske (constraint mask) gespeichert sein. Ein Pinselwerkzeug kann eine Nutzereingabe der Hinzufügung zu dem Entnahmebereich oder der Herausnahme hieraus erleichtern. Beim Detektieren der Vervollständigung der Nutzereingabe kann das interaktive System die sich ergebende Randbedingungsmaske automatisch an eine Back-End-Engine zum contentbewussten Füllen weiterleiten, um das contentbewusste Füllen unter Nutzung der spezifizierten Randbedingungsmaske zu synthetisieren.
  • Einige Ausführungsformen können verbesserte Patchverwendbarkeitstests für Anwendungen mit patchbasierter Synthese nutzen. Die Einführung von Patchdrehungen und einer Skalierung bzw. Stufung vergrößert die Komplexität der Bestimmung dessen, ob ein Kandidatenpatch ein verwendbarer Patch ist, der in den Entnahmebereich fällt. Um die Verwendbarkeit eines gegebenen Patches, der mehrere Pixel umfasst, zu testen, können einer oder mehrere aus einer Reihe von vereinfachten Tests durchgeführt werden, um zu bestimmen, ob jedes Pixel des Patches ins Innere des Entnahmebereiches (beispielsweise gemäß Bezeichnung durch eine Randbedingungsmaske) fällt. Es kann ein Lochweitungstest auf Patchverwendbarkeit durchgeführt werden, indem das Loch in der Randbedingungsmaske geweitet wird, um eine verkleinerte Randbedingungsmaske zu generieren, und indem eine Prüfung durchgeführt wird, um zu bestimmen, ob ein repräsentatives Pixel in dem Patch ins Innere des Bereiches, der von der verkleinerten Randbedingungsmaske bezeichnet wird, fällt. Ein Patch, der diesen Test besteht, ist verwendbar. Es kann ein Nichtweitungstest auf Patchverwendbarkeit durchgeführt werden, indem geprüft wird, ob ein repräsentatives Pixel eines Patches ins Innere des Loches (beispielsweise ins Äußere des Entnahmebereiches, der von der Randbedingungsmaske bezeichnet wird) fällt. Ein Patch, der dieses Kriterium erfüllt, ist nichtverwendbar. Es kann ein umfassender Pixeltest auf Patchverwendbarkeit durchgeführt werden, indem geprüft wird, ob jedes Pixel in dem Patch ins Innere des Entnahmebereiches, der von der Randbedingungsmaske bezeichnet wird, fällt. Aufgrund der vergleichsweise größeren rechentechnischen Anforderungen dieses umfassenden Pixeltests werden bisweilen nur diejenigen Pixel, deren Verwendbarkeit unter Nutzung eines der beiden anderen Tests nicht bestimmt werden kann, mittels des umfassenden Pixeltests getestet. Ein Patch, dessen Pixel den umfassenden Test bestehen, ist verwendbar. Einer oder mehrere der Patchverwendbarkeitstests können in das interaktive System zum automatischen Synthetisieren einer contentbewussten Füllung integriert sein.
  • Das Testen der Verwendbarkeit eines Patches kann beispielsweise die Nutzung von Ähnlichkeitstransformationen beinhalten. Eine Ähnlichkeitstransformation ist eine formwahrende Transformation, die eines oder mehrere von einer Translation, einer Drehung, einer Skalierung bzw. Stufung oder einer Reflexion (das heißt einer Spiegelung) beinhalten kann. Insbesondere impliziert ein exemplarisches Verfahren ein Generieren eines ähnlichkeitstransformierten Kandidatenpatches zum Rekonstruieren eines Zielbildes, ein Verwendbarkeitsprüfen des Kandidatenpatches als verwendbaren Patch, der ins Innere eines Entnahmebereiches des Quellbildes fällt, auf Grundlage einer Bewertung eines repräsentativen Patches des ähnlichkeitstransformierten Kandidatenpatches und ein automatisches Rekonstruieren des Zielbildes unter Nutzung des verwendbarkeitsgeprüften Kandidatenpatches. In einigen Fällen beinhaltet der Kandidatenpatch Pixel aus einem Quellbild. In einigen Fällen beinhaltet die Verwendbarkeitsprüfung des Kandidatenpatches das Ausführen eines ersten Patchverwendbarkeitstests, der ein Weiten eines Loches in dem Entnahmebereich beinhaltet, um einen verkleinerten Entnahmebereich zu generieren, und eine Verwendbarkeitsprüfung des Kandidatenpatches auf Grundlage der Durchführung einer Prüfung, um zu bestimmen, dass das repräsentative Pixel ins Innere des verkleinerten Entnahmebereiches fällt. In einigen Fällen umfasst das Weiten des Entnahmebereiches ein Hinzufügen eines Weitungsstreifens mit einer Breite auf Grundlage der Breite des Kandidatenpatches, und dies mit zulässigen Patchdrehungen, einem maximal zulässigen Skalierungs- bzw. Stufungsfaktor und einer Superabtast- bzw. entnahmerate.
  • Wiederum bei dem Beispiel hat, wie in Bildern 404-405 ersichtlich ist, die Bildverarbeitungsanwendung 102 das Füllen der Bereiche 430 und 431 durchgeführt. Insbesondere zeigt der Bereich 430 eine Füllung des vorher verdeckten bzw. verdunkelten Teils des Swimmingpools 410, während der Bereich 431 eine Füllung des vorher verdunkelten bzw. verdunkelten Teils des Grases 411 zeigt.
  • Bei Block 306 impliziert der Prozess 300 ein Erstellen eines Ausgabebildes durch Zusammenführen (merging) einer jeden der aktualisierten Masken mit Abschnitten des Bildes. Die Abschnitte des Bildes sind Bereiche des Bildes, die nicht von einer der Masken dargestellt werden. Die Bildverarbeitungsanwendung 102 erstellt ein Ausgabebild durch Kombinieren der gefüllten Bilder. Wie weiter bei dem Beispiel dargestellt ist, führt, wie in dem Ausgabebild 406 ersichtlich ist, die Bildverarbeitungsanwendung 102 die Bilder 404 und 405 einschließlich der Bereiche 430 und 431 derart zusammen, dass das Ausgabebild 406 das Entferntsein des Zielobjektes, nämlich des hölzernen Objektes 412, darstellt.
  • Wie erläutert worden ist, können Ausführungsformen konditionale, generative, adversative Netzwerke nutzen, um eine Objektbegrenzungsdetektion durchzuführen, wie sie beispielsweise bei Block 302 des Prozesses 300 durchgeführt wird. 5 zeigt ein Beispiel für einen Prozess zum Trainieren eines derartigen Netzwerkes.
  • 5 zeigt ein Beispiel für einen Prozess zum Trainieren eines konditionalen, adversativen Netzwerkes zum Detektieren von Begrenzungen von Objekten entsprechend einer Ausführungsform der vorliegenden Offenbarung. Das Modell maschinellen Lernens 105 kann ein konditionales, generatives, adversatives Netzwerk sein, das das generative Modell 106 und das diskriminative Modell 107 beinhaltet. Das Trainieren eines generativen, adversativen Netzwerkes impliziert ein gleichzeitiges Optimieren des generativen Modells 106, das eine Datenverteilung erfasst, und des diskriminativen Modells 107, das die Wahrscheinlichkeit dafür schätzt, dass eine Entnahme aus den Trainingsdaten und nicht von dem generativen Netzwerk stammt.
  • Bei Block 501 impliziert der Prozess 500 ein Bestimmen einer Begrenzung für ein Objekt innerhalb eines Bildes. 5 wird unter Bezugnahme auf 6 zu exemplarischen Zwecken erläutert, da 6 ein exemplarisches Trainingsbild zeigt. Andere Trainingsbilder sind jedoch möglich.
  • 6 zeigt Beispiele für Trainingsdaten, die in 5 benutzt werden, entsprechend einer Ausführungsform der vorliegenden Offenbarung. 6 zeigt ein Bild 601, eine Maske 602 und ein Bild 603. Die Bildverarbeitungsanwendung 102 empfängt das Bild 601 und bestimmt die Begrenzung für die Objekte in dem Bild. Insbesondere bestimmt die Bildverarbeitungsanwendung 102 die Begrenzung für das dargestellte Blatt, die dargestellte Eidechse und dergleichen. Die Maske 602 stellt die bestimmten Begrenzungen dar.
  • Bei Block 502 impliziert der Prozess 500 ein Erstellen eines Satzes von Trainingsbildern durch Anwenden einer anderen bzw. verschiedenen zufällig generierten Maske auf die Begrenzung eines jeden Bildes derart, dass die Maske letztendlich bzw. wenigstens einen Teil der Begrenzung bedeckt. Die Bildverarbeitungsanwendung 102 bestimmt zufällig eine Maske, die einen Teil des Blattes schwärzt, wie durch den Punkt 610 innerhalb des Bildes 603 dargestellt ist. Auf diese Weise zwingt die Bildverarbeitungsanwendung 102 das konditionale, generative, adversative Netzwerk dazu, die nunmehr fehlenden Begrenzungen des Blattes vorherzusagen. Blöcke 501-502 werden bis zu dem Zeitpunkt wiederholt, zu dem ein ausreichend großer Trainingsdatensatz erstellt ist. Es können verschiedene Typen von Bildern benutzt werden, um den Trainingsdatensatz zu vertiefen oder zu verbreitern. Mehrere Bilder von Blättern mit fehlenden Begrenzungen können beispielsweise zur Vertiefung des Trainingssatzes benutzt werden.
  • Bei Block 503 impliziert der Prozess 500 ein Bereitstellen eines Streams von Bildern, der den Satz von Trainingsbildern und ein Falschbild aus der Generierung durch ein generatives Modell beinhaltet, für das diskriminative Modell. In einigen Fällen erstellt die Bildverarbeitungsanwendung 102 einen Stream von Bildern, der die generierten Trainingsbilder und ein oder mehrere Falschbilder aus der Generierung durch das generative Modell, beinhaltet. Während des Trainierens wird das generative Modell 106 gegen das dagegen arbeitende diskriminative Modell 107 gestellt. Das generative Modell 106 kann man sich analog zu einer Gruppe von Geldfälschern vorstellen, die versuchen, Falschgeld herzustellen und in Umlauf zu bringen, ohne entdeckt zu werden, während das diskriminative Modell analog zur Polizei ist, die versucht, das Falschgeld aufzuspüren. Der Wettbewerb in diesem Spiel bringt beide Gruppen dazu, ihre Verfahren zu verbessern, bis die Fälschungen von echten Objekten nicht mehr unterscheidbar sind.
  • Bei Block 504 impliziert der Prozess 500 ein Aktualisieren eines oder mehrerer Parameter des generativen Modells oder des diskriminativen Modells derart, dass eine Verlustfunktion minimiert wird. Sowohl das generative Modell 106 wie auch das diskriminative Modell 107 können einen oder mehr mehrere trainierbare Parameter oder solche Gewichtungen aufweisen. Generative, adversative Netzwerke werden durch Aktualisieren eines oder mehrerer dieser Parameter trainiert. Die Bildverarbeitungsanwendung 102 kann beispielsweise gleichzeitig eine diskriminative Verteilung derart aktualisieren, dass sie zwischen Entnahmen aus der Datengenerierungsverteilung und denjenigen aus einer generativen Verteilung unterscheiden kann.
  • Insbesondere empfängt die Bildverarbeitungsanwendung 102 von dem diskriminativen Modell für jedes Bild in dem Stream eine Identifikation einer Begrenzung in dem Bild. Die Bildverarbeitungsanwendung 102 berechnet wiederum die Verlustfunktion auf Grundlage einer Differenz bzw. eines Unterschiedes zwischen der Begrenzung und der Referenzbegrenzung und aktualisiert entsprechend Parameter der Modelle. Das diskriminative Modell kann identifizieren, dass das Falschbild nicht echt ist, und aktualisiert entsprechend nicht Parameter auf Grundlage des Falschbildes. Die Bildverarbeitungsanwendung 102 kann das trainierte Modell maschinellen Lernens 105 nutzen, um Begrenzungen von Objekten in Verbindung mit dem Prozess 300 vorherzusagen.
  • 7 zeigt ein Beispiel für ein Rechensystem zum Entfernen von Objekten aus Bildern entsprechend einer Ausführungsform der vorliegenden Offenbarung. Die Rechenvorrichtung 700 ist ein Beispiel für ein Rechensystem 101 und kann eine Bildverarbeitungsanwendung 102 implementieren. Ein beliebiges geeignetes Rechensystem kann zur Durchführung der hier beschriebenen Vorgänge benutzt werden. Das dargestellte Beispiel für eine Rechenvorrichtung 700 beinhaltet einen Prozessor 702, der kommunikationstechnisch mit einer oder mehreren Speichervorrichtungen 704 gekoppelt ist. Der Prozessor 702 führt computerausführbaren Programmcode 703, der in einer Speichervorrichtung 704 gespeichert ist, aus, greift auf Daten, die in der Speichervorrichtung 704 gespeichert sind, zu oder beides. Beispiele für den Prozessor 702 beinhalten einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung („ASIC“), ein feldprogrammierbares Gate Array („FPGA“) oder eine beliebige andere geeignete Verarbeitungsvorrichtung. Der Prozessor 702 kann eine beliebige Anzahl von Verarbeitungsvorrichtungen oder Kernen beinhalten, darunter auch eine einzige Verarbeitungsvorrichtung. Die Funktionalität der Rechenvorrichtung kann in Hardware, Software, Firmware oder einer Kombination hieraus implementiert sein.
  • Die Speichervorrichtung 704 beinhaltet ein beliebiges geeignetes nichttemporäres computerlesbares Medium zum Speichern von Daten, Programmcode oder beidem. Ein computerlesbares Medium kann eine beliebige elektronische, optische, magnetische oder eine andere Speichervorrichtung beinhalten, die für den Prozessor computerlesbare Anweisungen oder anderen Programmcode bereitstellen kann. Nichtbeschränkende Beispiele für ein computerlesbares Medium beinhalten einen Flashspeicher, einen ROM, einen RAM, eine ASIC oder ein beliebiges anderes Medium, von dem eine Verarbeitungsvorrichtung Anweisungen lesen kann. Die Anweisungen können prozessorspezifische Anweisungen beinhalten, die von einem Compiler oder einem Interpreter aus Code generiert werden, der in einer beliebigen geeigneten Computerprogrammiersprache geschrieben ist, darunter beispielsweise C, C++, C#, Visual Basic, Java oder Scripting Language.
  • Die Rechenvorrichtung 700 kann zudem eine Anzahl von externen oder internen Vorrichtungen, so beispielsweise Eingabe- oder Ausgabevorrichtungen beinhalten. Die Rechenvorrichtung 700 ist beispielsweise mit einer oder mehreren Eingabe-/Ausgabe-Schnittstellen 708 („I/O“) gezeigt. Eine I/O-Schnittstelle 708 kann eine Eingabe von Eingabevorrichtungen empfangen oder eine Ausgabe für Ausgabevorrichtungen bereitstellen. Ein oder mehrere Busse 707 sind ebenfalls in der Rechenvorrichtung 700 beinhaltet. Der Bus 707 koppelt eine oder mehrere Komponenten einer jeweiligen der Rechenvorrichtung 700 kommunikationstechnisch.
  • Die Rechenvorrichtung 700 führt den Programmcode 730 aus, der den Prozessor 702 dafür konfiguriert, einen oder mehrere der hier beschriebenen Vorgänge durchzuführen. Der Programmcode 730 veranlasst den Prozessor, die in 2 oder 3 beschriebenen Vorgänge durchzuführen.
  • Die Rechenvorrichtung 700 beinhaltet zudem eine Netzwerkschnittstellenvorrichtung 710. Die Netzwerkschnittstellenvorrichtung 710 beinhaltet eine beliebige Vorrichtung oder Gruppe von Vorrichtungen, die zum Einrichten einer verdrahteten oder drahtlosen Datenverbindung mit einem oder mehreren Datennetzwerken geeignet sind. Die Netzwerkschnittstellenvorrichtung 710 kann eine drahtlose Vorrichtung sein und eine Antenne 714 aufweisen. Die Rechenvorrichtung 700 kann mit einer oder mehreren anderen Rechenvorrichtungen, die die Rechenvorrichtung oder eine andere Funktionalität implementieren, über ein Datennetzwerk unter Nutzung der Netzwerkschnittstellenvorrichtung 710 kommunizieren.
  • Die Rechenvorrichtung 700 kann zudem eine Anzeigevorrichtung 712 beinhalten. Die Anzeigevorrichtung 712 kann ein LCD, ein LED, ein Touchscreen oder eine andere Vorrichtung sein, die dafür betreibbar ist, Information über die Rechenvorrichtung 700 anzuzeigen. Die Information kann beispielsweise einen Betriebsstatus der Rechenvorrichtung, einen Netzwerkstatus und dergleichen mehr beinhalten.
  • Allgemeine Betrachtungen
  • Es sind hier zahlreiche spezifische Details angegeben, um ein eingehendes Verständnis des beanspruchten Erfindungsgegenstandes zu ermöglichen. Einem Fachmann auf dem Gebiet erschließt sich jedoch, dass der beanspruchte Erfindungsgegenstand auch ohne diese spezifischen Details praktisch umgesetzt werden kann. In anderen Fällen sind Verfahren, Einrichtungen oder Systeme, die einem Durchschnittsfachmann bekannt sein dürften, nicht detailliert beschrieben, um den beanspruchten Erfindungsgegenstand nicht unklar zu machen.
  • Wenn nicht anders angegeben, ist davon auszugehen, dass in der vorliegenden Beschreibung Erläuterungen unter Nutzung von Begriffen wie „Verarbeiten“, „Rechnen“, „Berechnen“, „Bestimmen“ und „Identifizieren“ oder dergleichen Handlungen oder Prozesse einer Rechenvorrichtung, so beispielsweise eines oder mehrerer Computer oder einer ähnlichen elektronischen Rechenvorrichtung oder solcher Vorrichtungen, bezeichnen, die Daten manipulieren oder transformieren, die als physische bzw. physikalische, elektronische oder magnetische Quantitäten innerhalb von Speichern, Registern oder anderen Informationsspeichervorrichtungen, Übertragungsvorrichtungen oder Anzeigevorrichtungen der Rechenplattform, dargestellt werden.
  • Das hier beschriebene System oder die hier beschriebenen Systeme sind nicht auf eine bestimmte Hardwarearchitektur oder Konfiguration beschränkt. Eine Rechenvorrichtung kann eine beliebige geeignete Anordnung von Komponenten beinhalten, die ein Ergebnis bereitstellen, das von einer oder mehreren Eingaben abhängt. Geeignete Rechenvorrichtungen beinhalten mikroprozessorbasierte Mehrzweckcomputersysteme, die auf gespeicherte Software zugreifen, die das Rechensystem ausgehend von einer Allzweckrecheneinrichtung zu einer spezialisierten Recheneinrichtung programmiert oder konfiguriert, die eine oder mehrere Ausführungsformen des vorliegenden Erfindungsgegenstandes implementiert. Es können eine beliebige geeignete Programmierung, ein solches Scripting oder ein anderer Typ von Sprache oder auch Kombinationen von Sprachen benutzt werden, um die hier enthaltenen Lehren in Software zu implementieren, die beim Programmieren oder Konfigurieren einer Rechenvorrichtung benutzt werden soll.
  • Beispiele für die hier offenbarten Verfahren können während des Betriebes derartiger Rechenvorrichtungen durchgeführt werden. Die Reihenfolge der Blöcke, die bei den vorstehenden Beispielen dargestellt sind, kann abgewandelt werden; so können Blöcke beispielsweise umgeordnet, kombiniert und/oder in Teilblöcke aufgeteilt werden. Bestimmte Blöcke oder Prozesse können auch parallel durchgeführt werden.
  • Die Nutzung von „ausgelegt für“ oder „konfiguriert für“ ist hier sprachlich offen und einschließend gemeint, sodass Vorrichtungen nicht ausgeschlossen sind, die dafür ausgelegt oder konfiguriert sind, zusätzliche Aufgaben oder Schritte durchzuführen. Zudem ist die Nutzung von „auf Grundlage von“ dahingehend offen und einschließend gemeint, dass ein Prozess, ein Schritt, eine Berechnung oder eine andere Handlung „auf Grundlage“ einer oder mehrerer angegebener Bedingungen oder Werte in der Praxis auch auf zusätzlichen Bedingungen oder Werten über die angegebenen hinaus beruhen kann. Die hier angegebenen Überschriften, Auflistungen und Nummerierungen dienen lediglich der leichteren Erläuterung und sind nicht beschränkend gemeint.
  • Obwohl der vorliegende Erfindungsgegenstand detailliert anhand spezifischer Ausführungsformen beschrieben worden ist, sollte einsichtig sein, dass ein Fachmann auf dem einschlägigen Gebiet beim Erwerb von Verständnis für das Vorbeschriebene ohne Weiteres Änderungen an, Abwandlungen von und Äquivalente zu derartigen Ausführungsformen konzipieren kann. Entsprechend sollte einsichtig sein, dass die vorliegende Offenbarung lediglich zu exemplarischen Zwecken und nicht zur Beschränkung vorgestellt worden ist und die Einbeziehung derartiger Modifikationen an, Abwandlungen von und/oder Hinzufügungen zu dem vorliegenden Erfindungsgegenstand nicht ausschließt, was sich einem Durchschnittsfachmann auf dem Gebiet ohne Weiteres erschließt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • lan J. Goodfellow et al., veröffentlicht bei Departement d'informatique et de recherche operationelle, Universite de Montreal, 2014 [0035]

Claims (14)

  1. Verfahren zum Entfernen eines Objektes aus einem Bild, wobei das Verfahren umfasst: Zugreifen auf ein Bild, das mehrere Objekte umfasst; Identifizieren einer vervollständigten bzw. vollständigen Begrenzung für jedes Objekt der mehreren Objekte durch Bereitstellen eines jeden Objektes für ein trainiertes Modell; Empfangen einer Auswahl eines Zielobjektes von den mehreren Objekten, wobei das Zielobjekt aus dem Bild entfernt werden soll; Bestimmen eines Satzes von Masken, wobei jede Maske einem Objekt der mehreren Objekte entspricht und einen Bereich des Bildes darstellt, der durch einen Schnitt der Begrenzung des Objektes und der Begrenzung des Zielobjektes definiert ist; Aktualisieren einer jeden Maske durch separates Durchführen eines Contentfüllens an dem entsprechenden Bereich; und Erstellen eines Ausgabebildes durch Zusammenführen einer jeden der aktualisierten Masken mit Abschnitten des Bildes.
  2. Verfahren nach Anspruch 1, wobei Abschnitte des Bildes Bereiche des Bildes sind, die nicht von irgendeiner der Masken dargestellt werden.
  3. Verfahren nach Anspruch 1 oder 2, wobei das trainierte Modell ein konditionales, adversatives Netzwerk ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Zugreifen auf das Bild des Weiteren umfasst: Detektieren der mehreren Objekte in dem Bild.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Füllen umfasst: separates Anwenden eines contentbewussten Füllens auf jede Maske auf Grundlage des entsprechenden Objektes.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Erstellen des Ausgabebildes umfasst: Erstellen eines Satzes von Schichten aus den Masken und Zusammenführen einer jeden Schicht des Satzes von Schichten in dem Ausgabebild.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Füllen einer jeder der Masken des Weiteren umfasst: Einteilen einer jeden Maske in mehrere Segmente; Durchführen eines contentbewussten Füllens an jedem Segment; und Kombinieren eines jeden Segmentes in die Maske.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Füllen einer jeden der Masken umfasst: Generieren eines Kandidatenpatches, der Pixel aus dem Objekt umfasst, das von der Maske dargestellt wird; Validieren bzw. Verwendbarkeitsprüfen des Kandidatenpatches; und automatisches Rekonstruieren von Pixeln der Maske unter Nutzung des verwendbarkeitsgeprüften Kandidatenpatches.
  9. Computerimplementiertes Verfahren zum Trainieren eines konditionalen, generativen, adversativen Netzwerkes zur Vorhersage von Begrenzungen von Objekten, wobei das Verfahren umfasst: Bestimmen einer Referenzbegrenzung für ein Objekt innerhalb eines Bildes; Erstellen eines Satzes von Trainingsbildern aus dem Bild durch Anwenden einer verschiedenen bzw. anderen zufällig generierten Maske auf die Referenzbegrenzung derart, dass die Maske letztendlich bzw. wenigstens einen Teil der Referenzbegrenzung verdeckt bzw. verdunkelt; Trainieren eines konditionalen, generativen, adversativen Netzwerkes, das ein generatives Modell und ein diskriminatives Modell umfasst, durch: Bereitstellen eines Streams von Bildern, der den Satz von Trainingsbildern und ein Falschbild aus der Generierung durch das generative Modell umfasst, für das diskriminative Modell, wobei das Falschbild zufällig generiert wird; und Aktualisieren eines oder mehrerer Parameter des generativen Modells oder des diskriminativen Modells derart, dass eine Verlustfunktion minimiert wird.
  10. Verfahren nach Anspruch 9, wobei das Trainieren des Weiteren umfasst: iteratives Trainieren eines konditionalen, generativen, adversativen Netzwerkes durch für jedes Bild in dem Stream von Bildern erfolgendes: Empfangen einer Identifikation einer Begrenzung in dem Bild von einem diskriminativen Modell und für jedes Bild; Berechnen einer Verlustfunktion auf Grundlage einer Differenz zwischen der Begrenzung und der Referenzbegrenzung; und Aktualisieren eines Parameters des diskriminativen Modells derart, dass die Verlustfunktion minimiert wird.
  11. Verfahren nach Anspruch 9 oder 10, wobei das diskriminative Modell identifiziert, dass das Falschbild nicht echt ist, und wobei das Aktualisieren des Parameters nicht auf dem Falschbild beruht.
  12. Verfahren nach einem der Ansprüche 9 bis 11, des Weiteren umfassend: Zugreifen auf ein Bild, das ein erstes Objekt und ein zweites Objekt umfasst; Identifizieren einer Begrenzung für jedes Objekt durch: Bereitstellen des Objektes für das konditionale, adversative Netzwerk; Empfangen einer vervollständigten bzw. vollständigen Begrenzung für das Objekt von dem konditionalen, adversativen Netzwerk; Bestimmen eines Satzes von Masken, wobei jede Maske einen Bereich des Bildes darstellt, der durch einen Schnitt der Begrenzung des ersten Objektes und der Begrenzung des zweiten Objektes definiert ist; Aktualisieren des Satzes von Masken durch Füllen einer jeder der Masken; und Erstellen eines Ausgabebildes durch Zusammenführen einer jeden der aktualisierten Masken in einem Ausgabebild.
  13. System, umfassend: eine oder mehrere Verarbeitungsvorrichtungen; und ein nichttemporäres computerlesbares Medium, das kommunikationstechnisch mit der einen oder den mehreren Verarbeitungsvorrichtungen gekoppelt ist, wobei die eine oder die mehreren Verarbeitungsvorrichtungen dafür konfiguriert sind, Anweisungen auszuführen und dadurch Vorgänge durchzuführen, die umfassen: Zugreifen auf ein Bild, das mehrere Objekte umfasst; Identifizieren einer vervollständigten bzw. vollständigen Begrenzung für jedes Objekt der mehreren Objekte durch Bereitstellen eines jeden Objektes für ein trainiertes Modell; Empfangen einer Auswahl eines Zielobjektes von den mehreren Objekten, wobei das Zielobjekt aus dem Bild entfernt werden soll; Bestimmen eines Satzes von Masken, wobei jede Maske einem Objekt der mehreren Objekte entspricht und einen Bereich des Bildes darstellt, der durch einen Schnitt der Begrenzung des Objektes und der Begrenzung des Zielobjektes definiert ist; Aktualisieren einer jeden Maske durch separates Durchführen eines Contentfüllens an dem entsprechenden Bereich; und Erstellen eines Ausgabebildes durch Zusammenführen einer jeden der aktualisierten Masken mit Abschnitten des Bildes.
  14. System nach Anspruch 13, wobei die eine oder die mehreren Verarbeitungsvorrichtungen dafür konfiguriert sind, des Weiteren Anweisungen auszuführen und dadurch Vorgänge durchzuführen, die die Schritte nach einem der Ansprüche 2 bis 8 umfassen.
DE102019006149.7A 2018-11-29 2019-08-29 Begrenzungsbewusste Objektentfernung und Contentfüllung Pending DE102019006149A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/204,226 US10825148B2 (en) 2018-11-29 2018-11-29 Boundary-aware object removal and content fill
US16/204,226 2018-11-29

Publications (1)

Publication Number Publication Date
DE102019006149A1 true DE102019006149A1 (de) 2020-06-04

Family

ID=68315275

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019006149.7A Pending DE102019006149A1 (de) 2018-11-29 2019-08-29 Begrenzungsbewusste Objektentfernung und Contentfüllung

Country Status (5)

Country Link
US (2) US10825148B2 (de)
CN (1) CN111242852A (de)
AU (1) AU2019227478B2 (de)
DE (1) DE102019006149A1 (de)
GB (1) GB2579434B (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3796228A1 (de) * 2019-09-20 2021-03-24 Robert Bosch GmbH Vorrichtung und verfahren zur erzeugung einer kontrafaktischen datenprobe für ein neuronales netzwerk
KR102637341B1 (ko) * 2019-10-15 2024-02-16 삼성전자주식회사 음성 생성 방법 및 장치
TWI760657B (zh) * 2019-11-14 2022-04-11 和碩聯合科技股份有限公司 異常偵測模型的訓練方法及使用此方法的電子裝置
US11341730B2 (en) * 2020-01-01 2022-05-24 Latham Pool Products, Inc. Augmented reality visualizer for swimming pools
US11710247B2 (en) 2020-01-30 2023-07-25 Unity Technologies Sf System for image compositing including training with synthetic data
US11676252B2 (en) 2020-01-31 2023-06-13 Unity Technologies Sf Image processing for reducing artifacts caused by removal of scene elements from images
US20210274091A1 (en) 2020-02-28 2021-09-02 Weta Digital Limited Reconstruction of obscured views of captured imagery using arbitrary captured inputs
US20210274092A1 (en) 2020-02-28 2021-09-02 Weta Digital Limited Reconstruction of obscured views in captured imagery using pixel replacement from secondary imagery
US11694313B2 (en) 2020-02-28 2023-07-04 Unity Technologies Sf Computer-generated image processing including volumetric scene reconstruction
CN111754396B (zh) * 2020-07-27 2024-01-09 腾讯科技(深圳)有限公司 脸部图像处理方法、装置、计算机设备和存储介质
US11875489B2 (en) 2021-06-30 2024-01-16 International Business Machines Corporation Detecting hybdrid-distance adversarial patches
CN113673308A (zh) * 2021-07-05 2021-11-19 北京旷视科技有限公司 对象识别方法、装置和电子系统

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0616293D0 (en) * 2006-08-16 2006-09-27 Imp Innovations Ltd Method of image processing
US8274530B2 (en) * 2007-03-12 2012-09-25 Conversion Works, Inc. Systems and methods for filling occluded information for 2-D to 3-D conversion
US8451265B2 (en) 2007-11-16 2013-05-28 Sportvision, Inc. Virtual viewpoint animation
US8311296B2 (en) * 2007-11-21 2012-11-13 Parascript, Llc Voting in mammography processing
US8503036B2 (en) * 2008-06-23 2013-08-06 Xerox Corporation System and method of improving image quality in digital image scanning and printing by reducing noise in output image data
US9380292B2 (en) * 2009-07-31 2016-06-28 3Dmedia Corporation Methods, systems, and computer-readable storage media for generating three-dimensional (3D) images of a scene
US8983179B1 (en) * 2010-11-10 2015-03-17 Google Inc. System and method for performing supervised object segmentation on images
US9754178B2 (en) * 2014-08-27 2017-09-05 International Business Machines Corporation Long-term static object detection
US20180279943A1 (en) * 2014-10-29 2018-10-04 Tissue Analytics, Inc. System and method for the analysis and transmission of data, images and video relating to mammalian skin damage conditions
US10586151B1 (en) * 2015-07-31 2020-03-10 Perceive Corporation Mitigating overfitting in training machine trained networks
US9767565B2 (en) * 2015-08-26 2017-09-19 Digitalglobe, Inc. Synthesizing training data for broad area geospatial object detection
US10043261B2 (en) * 2016-01-11 2018-08-07 Kla-Tencor Corp. Generating simulated output for a specimen
WO2017149315A1 (en) * 2016-03-02 2017-09-08 Holition Limited Locating and augmenting object features in images
US9972092B2 (en) * 2016-03-31 2018-05-15 Adobe Systems Incorporated Utilizing deep learning for boundary-aware image segmentation
US10346727B2 (en) * 2016-10-28 2019-07-09 Adobe Inc. Utilizing a digital canvas to conduct a spatial-semantic search for digital visual media
US10672115B2 (en) * 2016-12-06 2020-06-02 Siemens Corporation Weakly supervised anomaly detection and segmentation in images
US10242449B2 (en) * 2017-01-04 2019-03-26 Cisco Technology, Inc. Automated generation of pre-labeled training data
US10867416B2 (en) * 2017-03-10 2020-12-15 Adobe Inc. Harmonizing composite images using deep learning
US10402689B1 (en) * 2017-04-04 2019-09-03 Snap Inc. Generating an image mask using machine learning
US20190021677A1 (en) * 2017-07-18 2019-01-24 Siemens Healthcare Gmbh Methods and systems for classification and assessment using machine learning
US10269159B2 (en) * 2017-07-27 2019-04-23 Rockwell Collins, Inc. Neural network foreground separation for mixed reality
US20190066304A1 (en) * 2017-08-31 2019-02-28 Microsoft Technology Licensing, Llc Real-time object segmentation in live camera mode
US10678257B2 (en) 2017-09-28 2020-06-09 Nec Corporation Generating occlusion-aware bird eye view representations of complex road scenes
US10997727B2 (en) * 2017-11-07 2021-05-04 Align Technology, Inc. Deep learning for tooth detection and evaluation
US20190147320A1 (en) * 2017-11-15 2019-05-16 Uber Technologies, Inc. "Matching Adversarial Networks"
US10388002B2 (en) * 2017-12-27 2019-08-20 Facebook, Inc. Automatic image correction using machine learning
EP3525000B1 (de) * 2018-02-09 2021-07-21 Bayerische Motoren Werke Aktiengesellschaft Verfahren und vorrichtungen zur objektdetektion in einer szene auf basis von lidar-daten und radar-daten der szene
DE112019000049T5 (de) * 2018-02-18 2020-01-23 Nvidia Corporation Für autonomes fahren geeignete objekterfassung und erfassungssicherheit
US10332261B1 (en) * 2018-04-26 2019-06-25 Capital One Services, Llc Generating synthetic images as training dataset for a machine learning network
US10956967B2 (en) * 2018-06-11 2021-03-23 Adobe Inc. Generating and providing augmented reality representations of recommended products based on style similarity in relation to real-world surroundings
US11537277B2 (en) * 2018-07-19 2022-12-27 Palo Alto Research Center Incorporated System and method for generating photorealistic synthetic images based on semantic information
WO2020042004A1 (en) * 2018-08-29 2020-03-05 Intel Corporation Training one-shot instance segmenters using synthesized images
CA3114255C (en) * 2018-09-25 2023-08-22 Element Ai Inc. Automatically detecting and isolating objects in images
JP7119910B2 (ja) * 2018-10-30 2022-08-17 富士通株式会社 検出方法、検出プログラムおよび検出装置
US10810435B2 (en) * 2018-11-07 2020-10-20 Adobe Inc. Segmenting objects in video sequences
JP7318197B2 (ja) * 2018-11-15 2023-08-01 富士通株式会社 逐次学習プログラム、逐次学習装置および逐次学習方法
US10762668B2 (en) * 2018-12-28 2020-09-01 Intel Corporation Context-aware compression with quantization of hierarchical transform matrices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
lan J. Goodfellow et al., veröffentlicht bei Departement d'informatique et de recherche operationelle, Universite de Montreal, 2014

Also Published As

Publication number Publication date
CN111242852A (zh) 2020-06-05
AU2019227478B2 (en) 2021-10-28
GB2579434A (en) 2020-06-24
AU2019227478A1 (en) 2020-06-18
GB2579434B (en) 2021-10-06
US20210012468A1 (en) 2021-01-14
GB201913340D0 (en) 2019-10-30
US10825148B2 (en) 2020-11-03
US11551337B2 (en) 2023-01-10
US20200175654A1 (en) 2020-06-04

Similar Documents

Publication Publication Date Title
DE102019006149A1 (de) Begrenzungsbewusste Objektentfernung und Contentfüllung
DE112017002799B4 (de) Verfahren und system zum generieren multimodaler digitaler bilder
DE112019005750T5 (de) Erlernen des Erzeugens synthetischer Datensätze zum Trainieren neuronalerNetze
DE102018006247A1 (de) Digitalbildvervollständigung unter Verwendung des Deep Learning
DE102018007936A1 (de) Beantworten von Fragen für Datenvisualisierungen
DE102020002301A1 (de) Automatisches Detektieren nutzerseitig angeforderter Objekte in Bildern
DE102018000299A1 (de) Automatisches Segmentieren von Bildern auf Grundlage von in natürlicher Sprache gegebenen Äußerungen
DE102018008161A1 (de) Detektieren von Objekten unter Nutzung eines schwach überwachten Modells
DE102019000675A1 (de) Nutzen eines modells auf der basis eines tiefen neuronalen netzwerks zum identifizieren von visuell ähnlichen digitalen bildern auf der basis von nutzer-ausgewählten visuellen eigenschaften
DE102019005423A1 (de) Raum-Zeit-Speicher- bzw. Ablagenetzwerk zum Lokalisieren eines Zielobjektes in Videocontent
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE102019007196A1 (de) Identifizieren von Zielobjekten unter Nutzung der skalierungsdiversen Segmentierung dienender neuronaler Netzwerke
DE112016005059T5 (de) Unterkategorienbewusste faltende neuronale Netzwerke zur Objekterfassung
DE202020005498U1 (de) Vorrichtung zur klassensensitiven adversariellen Lungenknotensynthese
DE102022131673A1 (de) Autonomes-fahrzeug-wahrnehmung-multimodale-sensordaten-management
DE102018003475A1 (de) Formbasierte Grafiksuche
DE102022105471A1 (de) Generieren von modifizierten Digitalbildern unter Einsatz von tiefen visuellen angeleiteten Patchabgleichsmodellen zur Bildwiederherstellung
DE102019005885A1 (de) Umgebungskartengenerierung und Lochfüllung
DE202017007534U1 (de) Multiskalige 3D-Textursynthese
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE102021124445A1 (de) Metamerkmal-trainingsmodelle für maschinenlernalgorithmen
DE102021203021A1 (de) Semantisch konsistente erweiterte trainingsdaten zur ampelerkennung
DE102021200300A1 (de) Modifizieren von parametersätzen, die ein computer vision-modell charakterisieren
DE102017006557A1 (de) Verwenden von Markierungen zum Verfolgen von hochfrequenten Offsets für Patchabgleichsalgorithmen
DE102023104829A1 (de) Objektklasseninpainting - bzw. manipulieren in Digitalbildern unter Einsatz von klassenspezifischen Inpainting-Neuronalen- Netzwerken

Legal Events

Date Code Title Description
R012 Request for examination validly filed