-
Hintergrund
-
Die Verbreitung von Digitalkameras, seien sie nun eigenständig (beispielsweise Digitalreflexkameras mit Einzellinse) oder in Rechenvorrichtungen (beispielsweise in ein Smartphone) integriert, hat zur Verbreitung von Bildern unter zahlreichen Nutzern geführt. Oftmals sind diese Bilder nicht gerade perfekt. Ein Bild kann beispielsweise von einem Neuling aufgenommen worden und daher schlecht komponiert sein, oder es können Umstände wie das Wetter den Hintergrund (beispielsweise die Farbe des Himmels) in einem Bild beeinflussen. Der Nutzer wünscht daher gegebenenfalls die Bearbeitung eines Bildes, und zwar beispielsweise mittels einer Bildbearbeitungsanwendung. Das Ausführen von Bearbeitungsaufgaben mittels einer Bildbearbeitungsanwendung und das Erzeugen eines natürlich wirkenden Bildes (beispielsweise eines Bildes, bei dem ein Betrachter nicht unterscheiden kann, wo in dem Bild eine Bearbeitung vorgenommen worden ist) erfordern aufgrund der Komplexität des Bearbeitungsprozesses erhebliche Fähigkeiten und erheblichen Aufwand. Ein trainierter Profi (also beispielsweise jemand, der im Umgang mit einer Bildbearbeitungsanwendung geübt ist) kann Stunden damit zubringen, ein einziges Bild entsprechend einer Aufforderung, ein Objekt in dem Bild durch ein anderes Objekt, so beispielsweise ein Objekt aus einem anderen Bild zu ersetzen, zu erzeugen.
-
Aufgrund der Komplexität des Bildbearbeitungsprozesses und der unendlichen Vielzahl von Worten, die ein Nutzer in verschiedenen Sprachen und verschiedenen Dialekten äußern kann, beinhalten die meisten Bildbearbeitungsanwendungen keine Sprachschnittstellen oder verfügen nur über eingeschränkte Fähigkeiten dahingehend, eingeschränkte geäußerte Befehle zu erledigen. Die Anwendung „PixelTone“ von Adobe kann von einem Nutzer für ein zu bearbeitendes Bild beispielsweise eine geäußerte Bearbeitungsanfrage wie „Mach den Mann heller“ empfangen, wobei die Anwendung „PixelTone“ keine semantische Kenntnis des Bildes hat und an keinem Nutzerdialog teilnimmt. Als Folge dessen muss der Nutzer bei diesem Beispiel zunächst „den Mann“ in dem Bild auswählen, und zwar beispielsweise durch Übermalen des Mannes mit einem Pinselwerkzeug, bevor er das „Mach den Mann heller“ anfordert. Dies begrenzt die Nutzbarkeit der Sprachschnittstelle erheblich. Daher führen Bildbearbeitungsanwendungen keinen Nutzerdialog, sondern empfangen lediglich eingeschränkte geäußerte Befehle.
-
Darüber hinaus empfangen Bildbearbeitungsanwendungen keine multimodale Nutzereingabe, darunter eine ergänzende Nutzereingabe während eines Nutzerdialogs zusätzlich zur Spracheingabe während des Nutzerdialogs. Infolgedessen sind Bildbearbeitungsanwendungen mit Sprachschnittstellen auf die Effektivität der Bildbearbeitungsanwendung zur Verarbeitung einer geäußerten Eingabe beschränkt, ohne dass sie während eines Nutzerdialogs Vorteile aus anderen Formen der Nutzereingabe ziehen können.
-
Zusammenfassung
-
Beschrieben werden Techniken und Systeme zum Führen eines Nutzerdialogs, der eine Bearbeitungsanfrage für ein zu bearbeitendes Bild beinhaltet und mehrere angeglichene Bilder, die die Bearbeitungsanfrage erledigen, bereitstellt. Ein Dialog kann durch Versenden einer Anfrage an einen Nutzer, Empfangen einer Nutzerreaktion und Reagieren auf den Nutzer auf Grundlage der Nutzerreaktion geführt werden. Ein geführter Nutzerdialog kann eine multimodale Eingabe beinhalten. Bei einem Beispiel werden einem Nutzer Ergebnisse während eines geführten Nutzerdialogs präsentiert, und es wird die multimodale Eingabe als Teil des geführten Nutzerdialogs (beispielsweise die geäußerten Anweisungen und eine Angabe seitens einer Maus zur Bestätigung der Auswahl eines Objektes) empfangen. Auf diese Weise können für einen Nutzer effizient Bilder bereitgestellt werden, die eine Bearbeitungsanfrage erledigen und den Nutzer gleichzeitig hinsichtlich der Nutzung der Bearbeitungsanwendung anhand der tatsächlichen Nutzerdaten statt anhand eines Tutorials mit vorproduzierten Daten anweisen.
-
Ein geführter Nutzerdialog wird beispielsweise mit einem für natürliche Sprache gegebenen Prozessor verarbeitet, um zu bestimmen, ob der geführte Nutzerdialog eine Entfernungsaufforderung oder eine Ersetzungsaufforderung angibt. Des Weiteren wird ein Objekt aus dem Nutzerdialog identifiziert, so beispielsweise ein zu entfernendes Objekt, ein zu ersetzendes Objekt, ein Objekt zur Ersetzung eines anderen Objektes, Kombinationen hieraus und dergleichen mehr. Pixel des zu bearbeitenden Bildes, die einem zu entfernenden oder zu ersetzenden Objekt entsprechen, werden beispielsweise mit einem Computererfassungsprozessor ermittelt. Bei einem Beispiel wird ein Erfassungsmodul, das für das Objekt spezifisch ist, so beispielsweise eine Himmelserfassungsmodul, genutzt, das ein neuronales Netzwerk beinhaltet, das dafür trainiert ist, Himmel zu identifizieren, wenn die Ersetzungsaufforderung „Ersetze den eintönigen Himmel durch einen wolkenverhangenen Himmel“ erledigt wird. Aus einer Vorratsbilderdatenbank werden Bilder bezogen, die Füllmaterial zum Füllen eines Loches, wenn ein Objekt entfernt wird, oder Ersetzungsmaterial zum Ersetzen eines Objektes entsprechend einer Ersetzungsaufforderung beinhaltet. Auf Grundlage des geführten Nutzerdialogs, der eine Entfernungsaufforderung oder Ersetzungsaufforderung angibt, wird ein Objekt entfernt und Füllmaterial an dessen Stelle hinzugefügt oder wird ein Objekt durch Ersetzungsmaterial ersetzt, um mehrere zusammengestellte Bilder zu erzeugen, die angeglichen werden, damit die Bearbeitung natürlich wirkt. Mehrere angeglichene Bilder werden in einer Nutzerschnittstelle präsentiert. Einem Nutzer werden daher mehrere Optionen (beispielsweise angeglichene Bilder mit verschiedenen Ausgestaltungen des Füllmaterials oder Ersetzungsmaterials) präsentiert, die die Bearbeitungsanfrage auf Grundlage eines geführten Nutzerdialogs erledigen. Bei einem Beispiel werden die mehreren Bilder dem Nutzer automatisch und ohne Nutzereingriff präsentiert, sobald der geführte Nutzerdialog endet und ein zu bearbeitendes Bild bezogen wird. Bei einem weiteren Beispiel werden dem Nutzer Zwischenergebnisse präsentiert, und es wird eine multimodale Eingabe während eines geführten Nutzerdialogs empfangen.
-
Die vorliegende Zusammenfassung stellt in vereinfachter Form eine Auswahl von Konzepten bereit, die in der nachfolgenden Detailbeschreibung weiter beschrieben werden. Als solches soll die vorliegende Zusammenfassung wesentliche Merkmale des beanspruchten Erfindungsgegenstandes weder identifizieren, noch soll sie als Hilfe bei der Bestimmung des Umfangs des beanspruchten Erfindungsgegenstandes genutzt werden.
-
Figurenliste
-
Die Detailbeschreibung erfolgt anhand der begleitenden Figuren. In den Figuren identifiziert/identifizieren die am weitesten links stehende Ziffer / die am weitesten links stehenden Ziffern eines Bezugszeichens die Figur, in der das Bezugszeichen erstmalig auftritt. Die Nutzung derselben Bezugszeichen in verschiedenen Zusammenhängen kann in der Beschreibung und den Figuren ähnliche oder identische Gegebenheiten angeben. Entitäten, die in den Figuren dargestellt sind, können eine oder mehrere Entitäten angeben, weshalb der Verweis auf eine oder mehrere Formen der Entitäten in der Diskussion gleichwertig erfolgen kann.
- 1 zeigt eine digitale Medienumgebung bei einer exemplarischen Implementierung, die zum Einsetzen der hier beschriebenen Techniken betreibbar ist.
- 2 zeigt ein exemplarisches Flussdiagramm von Bildern, die einer Ersetzungsaufforderung entsprechen, entsprechend einem oder mehreren Aspekten der Offenbarung.
- 3 zeigt ein exemplarisches Flussdiagramm von Bildern, die einer Entfernungsaufforderung entsprechen, entsprechend einem oder mehreren Aspekten der Offenbarung.
- 4 zeigt ein exemplarisches System, das zum Ersetzen und Entfernen von Objekten in einem Bild entsprechend einem oder mehreren Aspekten der vorliegenden Offenbarung nutzbar ist.
- 5 zeigt eine exemplarische Nutzerschnittstelle entsprechend einem oder mehreren Aspekten der Offenbarung.
- 6 zeigt ein Flussdiagramm zur Darstellung einer exemplarischen Prozedur entsprechend einem oder mehreren Aspekten der Offenbarung.
- 7 zeigt ein Flussdiagramm zur Darstellung einer exemplarischen Prozedur entsprechend einem oder mehreren Aspekten der Offenbarung.
- 8 zeigt ein exemplarisches System, das verschiedene Komponenten einer exemplarischen Vorrichtung beinhaltet, die als beliebiger Typ von Rechenvorrichtung so, wie sie genutzt und/oder anhand 1 bis 7 beschrieben wird, implementiert sein kann, um Aspekte der hier beschriebenen Techniken zu implementieren.
-
Detailbeschreibung
-
Übersicht
-
Zu den häufigsten Aufforderungen, ein Bild zu bearbeiten, gehören Entfernungsaufforderungen und Ersetzungsaufforderungen. „Entferne den Hydrant aus dem Bild“ und „Ersetze den Hintergrund in dem Bild durch eine Straßenszene in Paris“ sind Beispiele für eine Entfernungsaufforderung beziehungsweise eine Ersetzungsaufforderung. Aufgrund der Komplexität von Bildbearbeitungsvorgängen (beispielsweise mit Blick auf die Anzahl von Vorgängen, die Reihenfolge von Vorgängen und die Anzahl von Parametern, die für jeden Vorgang geeignet eingestellt werden muss) und der unendlichen Vielfalt von Worten, die ein Nutzer in verschiedenen Sprachen und verschiedenen Dialekten äußern kann, beinhalten die meisten Bildbearbeitungsanwendungen keine Sprachschnittstellen oder verfügen nur über eingeschränkte Fähigkeiten zur Erledigung eingeschränkter geäußerter Befehle. Bildbearbeitungsanwendungen führen beispielsweise keinen Nutzerdialog, sondern empfangen vielmehr eingeschränkte geäußerte Befehle. Darüber hinaus empfangen Bildbearbeitungsanwendungen keine multimodale Nutzereingabe, darunter eine ergänzende Nutzereingabe, während eines Nutzerdialogs zusätzlich zu einer Spracheingabe während des Nutzerdialogs. Als Folge dessen sind Bildbearbeitungsanwendungen mit Sprachschnittstellen auf die Effektivität der Bildbearbeitungsanwendung bei der Verarbeitung eingeschränkter geäußerter Befehle beschränkt, ohne die Vorteile eines geführten Nutzerdialogs, darunter aus einer ergänzenden Nutzereingabe, während eines geführten Nutzerdialogs zusätzlich zu einer Spracheingabe während des geführten Nutzerdialogs, ziehen zu können.
-
Entsprechend beschreibt die vorliegende Offenbarung Systeme und Verfahren zum Führen eines Nutzerdialogs, zum Beziehen einer Bearbeitungsanfrage und Bereitstellen mehrerer Bilder, die durch Erledigen einer Entfernungsaufforderung oder einer Ersetzungsaufforderung mit verschiedenem Content, so beispielsweise mit Content, der aus einer Vorratsbilderdatenbank bezogen wird, auf Grundlage der Bearbeitungsanfrage nachbearbeitet worden sind. Während des geführten Nutzerdialogs kann eine multimodale Nutzereingabe empfangen werden, darunter eine ergänzende Nutzereingabe zur Spracheingabe (beispielsweise ein Mausklick, eine Berührung eines berührungsempfindlichen Schirmes (touchscreen) und dergleichen) während des geführten Nutzerdialogs, um die Zuverlässigkeit der Kommunikation zwischen dem Nutzer und einer Rechenvorrichtung zu erhöhen. Ein Nutzerdialog kann durch Versenden einer Anfrage an einen Nutzer, Empfangen einer Nutzerreaktion und Reagieren auf den Nutzer auf Grundlage der Nutzerreaktion geführt werden. Empfangene Nutzerreaktionen werden verarbeitet, um Parameter einer Bearbeitungsanfrage zu bestimmen, so beispielsweise dahingehend, ob der Nutzerdialog eine Entfernungsaufforderung oder eine Ersetzungsaufforderung, zu entfernende Objekte, zu ersetzende Objekte, Objekte zur Ersetzung von Objekten, Modifizierer von Objekten, Kombinationen hieraus und dergleichen mehr angibt. Beinhalten kann der geführte Nutzerdialog eine beliebige Anzahl von Malen das Versenden einer Anfrage, das Empfangen einer Nutzerreaktion und das Reagieren auf eine Nutzerreaktion, was beispielsweise durch eine Bildbearbeitungsanwendung auf einer Rechenvorrichtung initiiert wird. Der Umfang des Fragens bei jedem Durchgang (volley) aus Frage und Antwort in dem geführten Nutzerdialog kann auf beliebige geeignete Weise eingestellt werden, so beispielsweise auf Grundlage einer vorher empfangenen Nutzerreaktion, auf Grundlage dessen, ob eine Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung angibt, auf Grundlage der Verfügbarkeit von Ressourcen zur Erledigung einer Bearbeitungsaufforderung und dergleichen mehr.
-
Auf Grundlage der Parameter des geführten Nutzerdialogs werden mehrere Bilder bezogen, die Füllmaterial zum Füllen eines Loches, das geschaffen wird, wenn ein Objekt entsprechend einer Entfernungsaufforderung entfernt wird, oder Ersetzungsmaterial zum Ersetzen eines Objektes entsprechend einer Ersetzungsaufforderung beinhalten. Bei einem Beispiel wird Füllmaterial als ähnlich zu verschiedenen Pixeln des Bildes im Vergleich zu den Pixeln des Bildes entsprechend einem zu entfernenden Objekt erkannt. Beim Entfernen eines Hydranten von einem Rasen kann das Füllmaterial beispielsweise ähnlich zu Pixeln des Rasens sein. Bei einem Beispiel wird das Ersetzungsmaterial als ähnlich zu Pixeln des Bildes entsprechend einem zu entfernenden Objekt erkannt (So sind beim Ersetzen eines eintönigen Himmels durch einen wolkenverhangenen Himmel beispielsweise die Pixel ähnlich, da sie jeweils Himmel darstellen). Das Ersetzungsmaterial entspricht zudem der Ersetzungsaufforderung (Wenn eine Ersetzungsaufforderung beispielsweise das Ersetzen eines eintönigen Himmels durch einen wolkenverhangenen Himmel angibt, stellt das Ersetzungsmaterial einen wolkenverhangenen Himmel, der durch die Ersetzungsaufforderung angegeben ist, dar).
-
Bilder mit Füllmaterial oder Ersetzungsmaterial können aus beliebigen geeigneten Quellen bezogen werden, so beispielsweise aus einer Vorratsbilderdatenbank, der Bildergalerie eines Nutzers (beispielsweise aus Bildern, die auf eine Online-Foto-Sharing-Webseite hochgeladen worden sind), einer Bilderbibliothek des Nutzers (beispielsweise Dateien, die auf dem Rechner des Nutzers gespeichert sind), einem Bild, das von einem Online-Posting in sozialen Medien bezogen wird, einem Bild, das in einer nutzerseitigen E-Mail gesendet wird oder an diese angehängt ist, und dergleichen mehr.
-
Es wird ein zu bearbeitendes Bild bezogen (ein Nutzer lädt beispielsweise das Bild in eine Bildbearbeitungsanwendung). Das zu bearbeitende Bild wird von einem Erfassungsmodul verarbeitet, das für ein Objekt, so beispielsweise ein zu ersetzendes Objekt, spezifisch sein kann. Ein Himmelserfassungsmodul, das ein neuronales Netzwerk beinhaltet, das dafür trainiert ist, jeweiligen Himmel zu identifizieren, wird beispielsweise genutzt, um Pixel eines Himmels in einem Bild zu ermitteln, wenn ein zu ersetzendes Objekt in dem Bild als Himmel identifiziert wird, so beispielsweise bei der Ersetzungsaufforderung „Ersetze den eintönigen Himmel durch einen wolkenverhangenen Himmel“. Beinhalten kann das Ermitteln der Pixel, die einem Objekt in einem Bild entsprechen, darüber hinaus ein Generieren einer Objektmaske für das Objekt, ein Erweitern der Objektmaske zur Schaffung eines Bereiches, der von einem Rand der Objektmaske begrenzt wird, und ein Generieren einer verfeinerten Maske zur Darstellung der Pixel, die dem Objekt entsprechen, durch Trennen eines Hintergrundes von einem Vordergrund in dem Bereich. Des Weiteren können Beiträge zu Pixeln in dem Bereich aus dem Hintergrund des Bildes in einem Hintergrundbereinigungsprozess entfernt werden.
-
In Reaktion auf eine Bestimmung, ob eine Bearbeitungsanfrage, die in dem geführten Nutzerdialog angegeben ist, eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet, werden mehrere zusammengestellte Bilder jeweils aus dem zu bearbeitenden Bild und dem Füllmaterial oder Ersetzungsmaterial gebildet. Die zusammengestellten Bilder werden angeglichen, damit sie natürlich wirken (damit beispielsweise die Bearbeitung nicht ohne Weiteres entdeckt werden kann). Bei einem Beispiel beinhaltet das Angleichen ein Anpassen der Beleuchtung eines zusammengestellten Bildes derart, dass diese bei den Bildmaterialien auf die jeweilige Tageszeit abgestimmt ist. Die Beleuchtung des Ersetzungsmaterials kann beispielsweise auf einen Abschnitt des Bildes abgestimmt werden, indem ein Schatten in dem Ersetzungsmaterial entsprechend der Tageszeit des Bildes angepasst wird. Angeglichene Bilder werden in einer Nutzerschnittstelle präsentiert, wodurch einem Nutzer mehrere Optionen, die eine Entfernungsaufforderung oder eine Ersetzungsaufforderung erledigen, präsentiert werden. Bei einem Beispiel beinhaltet jede Option, die in der Nutzerschnittstelle präsentiert wird, Füllmaterial oder Ersetzungsmaterial aus einem anderen Bild, damit der Nutzer in der Lage ist, unter den präsentierten Optionen ein Bild auszuwählen, das die Bearbeitungsanfrage des Nutzers am besten erledigt.
-
Bei einem Beispiel werden Zwischenergebnisse in einer Nutzerschnittstelle präsentiert. Ein Bild kann einem Nutzer beispielsweise mit der Angabe eines Kandidatenobjektes präsentiert werden, und zwar beispielsweise mittels eines Lassos, das ein Objekt umgibt, dessen Ersetzung in einer Bearbeitungsanfrage angefordert worden ist. Zur Bestätigung der Auswahl des Kandidatenobjektes wird eine multimodale Eingabe empfangen. Die multimodale Eingabe beinhaltet mehrere Formen von Eingaben, die während eines geführten Nutzerdialogs empfangen werden, um dieselbe Handlung anzugeben. Die geäußerten Anweisungen (beispielsweise „Bewege das Lasso weg vom Kopf des Hundes zu dem Hydrant“) und das Auswählen durch eine Maus (beispielsweise durch Mausklick, Halten und Ziehen eines Lassos) bestätigen beispielsweise die Auswahl des Objektes. Infolgedessen werden einem Nutzer effizient Bilder präsentiert, die eine Bearbeitungsanfrage erledigen und die den Nutzer gleichzeitig hinsichtlich der Nutzung der Bearbeitungsanwendung während der Arbeit anhand der aktuellen Daten des Nutzers statt anhand eines Tutorials mit vorproduzierten Daten anweisen. Ein Nutzer ist daher in der Lage, effizient mit einer Rechenvorrichtung (beispielsweise einem Persönlichen Assistent), die die hier beschriebenen Techniken implementiert, zu kommunizieren, und muss nicht auf eine zusätzliche Partei, so beispielsweise einen Online-Bearbeitungsdienst, einen Freund, einen Mitarbeiter oder einen Bekannten zurückgreifen, um ein Bild durch Entfernen oder Ersetzen von Objekten in dem Bild nachzubearbeiten. Im Ergebnis ist der Nutzer in der Lage, ohne spürbare Verzögerung (beispielsweise von Sekunden oder Minuten und nicht von Stunden, Tagen oder Wochen) mehrere angeglichene Bilder, die jeweils die geäußerte Anfrage des Nutzers erledigen, automatisch zu beziehen, und zwar durch Teilnahme an einem geführten Nutzerdialog, durch Bereitstellen einer multimodalen Eingabe oder durch Kombinationen hieraus.
-
In der nachfolgenden Diskussion wird eine exemplarische Digitalmedienumgebung beschrieben, in der die hier beschriebenen Techniken eingesetzt werden können. Sodann werden exemplarische Details und Prozeduren der Implementierung beschrieben, die in der exemplarischen Digitalmedienumgebung wie auch in anderen Umgebungen durchgeführt werden können. Infolgedessen 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 Digitalmedienumgebung
-
1 ist eine Darstellung einer Digitalmedienumgebung 100 bei einer exemplarischen Implementierung, die für den Einsatz der hier beschriebenen Techniken betreibbar ist. Im Sinne des Vorliegenden bezeichnet der Begriff „Digitalmedienumgebung“ verschiedene Rechenvorrichtungen und Ressourcen, die zur Implementierung der hier beschriebenen Techniken genutzt werden können. Die dargestellte Digitalmedienumgebung 100 beinhaltet einen Nutzer 102, der über wenigstens eine Rechenvorrichtung (beispielsweise eine Mobilvorrichtung) verfügt. Bei dem Beispiel von 1 ist der Nutzer 102 derart dargestellt, dass er über drei Rechenvorrichtungen verfügt, nämlich über die Rechenvorrichtungen 104-1, 104-2 und 104-3 (zusammen 104). Die Rechenvorrichtung 104-1 ist beispielsweise ein Tablet, die Rechenvorrichtung 104-2 ist eine Brille (beispielsweise Smart Goggles), und die Rechenvorrichtung 104-3 ist eine intelligente Armbanduhr (smart watch). Die Rechenvorrichtungen 104 sind exemplarische Rechenvorrichtungen, und es ist eine beliebige geeignete Rechenvorrichtung einbezogen, so beispielsweise ein Mobiltelefon, ein Tablet, ein Laptopcomputer, ein Desktopcomputer, eine Spielevorrichtung, Goggles, eine Brille, eine Kamera, ein Digitalassistent, eine Echovorrichtung, ein Bildbearbeitungsprogramm, ein nichtlineares Bearbeitungsprogramm, eine Digitaltonworkstation, ein Kopierer, ein Scanner und dergleichen mehr. Des Weiteren ist die Diskussion einer der Rechenvorrichtungen 104 nicht auf jene Rechenvorrichtung beschränkt, sondern gilt allgemein für jede der Rechenvorrichtungen 104. Darüber hinaus können die Rechenvorrichtungen 104 von Vollressourcenvorrichtungen mit erheblichen Speicher- und Prozessorressourcen (beispielsweise PCs, Spielekonsolen) bis hin zu geringe Ressourcen aufweisenden Vorrichtungen mit beschränkten Speicher- oder Verarbeitungsressourcen (beispielsweise Mobilvorrichtungen) reichen.
-
Verschiedene Typen von Eingabevorrichtungen und Eingabeinstrumenten können genutzt werden, um eine Eingabe für die Rechenvorrichtung 104 bereitzustellen. Die Rechenvorrichtungen 104 können eine Eingabe als Mauseingabe, Stifteingabe, Berührungseingabe, Eingabe, die von einer Schnittstelle zu einem natürlichen Nutzer bereitgestellt wird, und dergleichen mehr erkennen. Daher können die Rechenvorrichtungen 104 mehrere Typen von Gesten erkennen, darunter Berührungsgesten und Gesten, die von einer Schnittstelle zu einem natürlichen Nutzer bereitgestellt werden. Bei einem Beispiel beinhalten die Rechenvorrichtungen 104 Spracherkennungs-, Identifikations- und Synthesefunktionalitäten sowie Mikrofone und Lautsprecher, die ermöglichen, dass die Rechenvorrichtungen 104 mit dem Nutzer 102 in einem Dialog, so beispielsweise einem geführten Nutzerdialog, kommunizieren.
-
Des Weiteren können die Rechenvorrichtungen 104 eine oder mehrere verschiedene Rechenvorrichtungen darstellen, so beispielsweise eine oder mehrere Vorrichtungen, die mit einem Netzwerk verbunden sind und Vorgänge „über die Cloud“ ausführen, wie nachstehend anhand 8 noch beschrieben wird. Bei einem Beispiel sind die Rechenvorrichtungen 104 miteinander gekoppelt, und zwar beispielsweise über einen Drahtloskommunikationsstandard niedriger Energie (beispielsweise über das Bluetooth®-Protokoll). Die Rechenvorrichtung 104-1 kann beispielsweise drahtlos mit der Rechenvorrichtung 104-2 und der Rechenvorrichtung 104-3 kommunizieren. Daher kann ein Bild, das auf einer Vorrichtung (beispielsweise der Rechenvorrichtung 104-1) generiert wird oder gespeichert ist, an eine andere Vorrichtung (beispielsweise die Rechenvorrichtung 104-2) kommuniziert und dort angezeigt werden.
-
Bei dem in 1 dargestellten Beispiel bezieht die Rechenvorrichtung 104-1 ein zu bearbeitendes Bild 106. Das zu bearbeitende Bild 106 kann auf beliebige geeignete Weise bezogen werden, so beispielsweise von einer anderen Rechenvorrichtung, von einem Dateispeicher auf der Rechenvorrichtung 104-1 (nachstehend noch detailliert beschrieben), durch Aufnehmen eines Bildes mit einer Kamera auf der Rechenvorrichtung 104-1 und dergleichen mehr. Bei dem Beispiel von 1 beinhaltet das zu bearbeitende Bild 106 ein Auto neben einem Haus mit einem Baum und Regenwolken im Hintergrund. Man beachte zudem, dass der Fahnenmast auf dem Haus in dem zu bearbeitenden Bild 106 verbogen ist.
-
Die Rechenvorrichtung 104-3 führt einen Nutzerdialog 108, der Sprache 108-1 von dem Nutzer 102 und Sprache 108-2 von der Rechenvorrichtung 104-3 beinhaltet (So bilden die Sprache 108-1 und die Sprache 108-2 beispielsweise zusammen den Nutzerdialog 108, der ein geführter Nutzerdialog ist). Bei dem Beispiel von 1 beinhaltet der Nutzerdialog 108 eine Bearbeitungsanfrage für das zu bearbeitende Bild 106, so beispielsweise „Ersetze den verregneten Hintergrund durch einen sonnigen Tag“. Der Nutzerdialog 108 kann eine beliebige Anzahl von Durchgängen der Sprache 108-1 von dem Nutzer 102 und der Sprache 108-2 von der Rechenvorrichtung 104-3 im Format eines geführten Dialogs beinhalten. Bei einem Beispiel kann der Dialog 108 anstelle dessen, dass der Nutzer 102 bei einem Durchgang des Dialogs 108 eine Ersetzungsaufforderung, so beispielsweise „Ersetze den verregneten Hintergrund durch einen sonnigen Tag“ äußert, mehrere Durchgänge aus Fragen und Antworten im Stile eines geführten Gesprächs beinhalten, aus denen eine Bearbeitungsanfrage, die eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet, erstellt werden kann. Beispiel:
- Rechenvorrichtung 104-3: Möchtest Du heute etwas entfernen oder ersetzen?
- Nutzer 102: Ersetzen.
- Rechenvorrichtung 104-3: Was möchtest Du ersetzen?
- Nutzer 102: Den verregneten Hintergrund.
- Rechenvorrichtung 104-3: Wodurch möchtest Du den verregneten Hintergrund ersetzen?
- Nutzer 102: Durch einen sonnigen Tag.
-
Auf Grundlage des Nutzerdialogs 108 nutzt die Rechenvorrichtung 104-2 ein Bildnachbearbeitungssystem 110 (nachstehend noch detaillierter beschrieben), um das zu bearbeitende Bild 106 entsprechend einer Bearbeitungsanfrage nachzubearbeiten und ein angeglichenes Bild 112 für eine Nutzerschnittstelle auf der Rechenvorrichtung 104-2 (beispielsweise eine kopfmontierte Anzeige) bereitzustellen. Zusätzlich oder alternativ kann das angeglichene Bild 112 auf einem Anzeigebildschirm der Rechenvorrichtung 104-1 oder der Rechenvorrichtung 104-3 angezeigt werden. Bei dem Beispiel von 1 wird das angeglichene Bild 112 entsprechend der Bearbeitungsanfrage nachbearbeitet, da der verregnete Hintergrund des zu bearbeitenden Bildes 106 durch den Hintergrund eines sonnigen Tages, der einen Regenbogen beinhaltet, ersetzt worden ist. Des Weiteren ist der Fahnenmast auf dem Haus in dem angeglichenen Bild 112 berichtigt (beispielsweise geradegebogen).
-
Die Rechenvorrichtungen 104 sind zudem mit einem Netzwerk 114 gekoppelt. Das Netzwerk 114 koppelt die Rechenvorrichtungen 104 kommunikationstechnisch mit einem Server 116 (Der Klarheit halber ist in 1 nur eine Rechenvorrichtung 104-1 als mit dem Netzwerk 114 gekoppelt dargestellt, obwohl die Rechenvorrichtungen 104-2 und 104-3 ebenfalls über das Netzwerk 114 mit dem Server 116 gekoppelt sein können). Das Netzwerk 114 kann eine Vielzahl von Netzwerken beinhalten, so beispielsweise das Internet, ein Intranet, ein Ortsbereichsnetzwerk (LAN), ein Großbereichsnetzwerk (WAN), ein persönliches Bereichsnetzwerk (PAN), zellenartige Netzwerke, terrestrische Netzwerke, Satellitennetzwerke, Kombinationen aus Netzwerken und dergleichen, und kann als solches verdrahtet, drahtlos oder eine Kombination hieraus sein.
-
Der Server 116 kann einen oder mehrere Server oder Dienstanbieter beinhalten, die Dienste und/oder Ressourcen für die Rechenvorrichtungen 104 bereitstellen. Im Allgemeinen können die von dem Server 116 bereitgestellten Ressourcen lizenziert, erworben oder (beispielsweise ohne Authentisierung, Lizenz oder kontenbasierten Zugang) frei zugänglich gemacht werden. Die Ressourcen können eine beliebige geeignete Kombination aus Diensten und Content beinhalten, die beispielsweise durch das Netzwerk 114 über einen oder mehrere Anbieter zur Verfügung gestellt werden. Einige Beispiele für Dienste beinhalten unter anderem einen Online-Einkaufsdienst, einen Fotobearbeitungsdienst, einen Webentwicklungs- und Verwaltungsdienst, einen Kooperationsdienst, einen Dienst eines sozialen Netzwerkes, einen Mitteilungsdienst, einen Inseratdienst, einen Grafikgestaltungsdienst, einen Bildspeicherdienst (unter anderem zur Speicherung von Fotos, Dokumenten, Aufzeichnungen, Dateien und dergleichen) und anderes mehr. Der Content kann verschiedene Kombinationen von Assets beinhalten, darunter Videos, Inserate, Ton, Multimediastreams, Animationen, Bilder, Webdokumente, Webseiten, Anwendungen, Vorrichtungsanwendungen, Textdokumente, Zeichnungen, Präsentationen, Vorratsfotos, Nutzerprofile, Nutzerpräferenzen, Nutzerdaten (beispielsweise in einer Bildgalerie gespeicherte Bilder) und dergleichen mehr.
-
Der Server 116 beinhaltet ein Bildunterstützungssystem 118, das dafür konfiguriert sein kann, Signale von den Rechenvorrichtungen 104 zu empfangen, die empfangenen Signale zu verarbeiten und die verarbeiteten Signale an die Rechenvorrichtungen 104 zu senden, um das Entfernen und Ersetzen von Objekten in einem Bild zu unterstützen. Die Rechenvorrichtung 104-1 kann beispielsweise ein zu bearbeitendes Bild 106 beziehen und mit dem Server 116 kommunizieren. Unter Nutzung des Bildunterstützungssystems 118 kann der Server 116 ein angeglichenes Bild 112 aus dem zu bearbeitenden Bild 106, das von der Rechenvorrichtung 104-1 empfangen worden ist, generieren und das angeglichene Bild 112 zurück an die Rechenvorrichtung 104-1 senden, damit es auf der Rechenvorrichtung 104-1 oder einer beliebigen geeigneten Rechenvorrichtung angezeigt werden kann. Entsprechend kann das Bildunterstützungssystem 118 des Servers 116 eine Kopie des Bildnachbearbeitungssystems 110 beinhalten, darunter die Bildnachbearbeitungsanwendung 120 (die nachstehend noch detaillierter erläutert wird).
-
Die Rechenvorrichtungen 104 beinhalten das Bildnachbearbeitungssystem 110 zum Entfernen und Ersetzen von Objekten in dem Bild, so beispielsweise in dem zu bearbeitenden Bild 106. Die Rechenvorrichtung 104-2 ist der Klarheit halber in 1 als diejenige dargestellt, die das Bildnachbearbeitungssystem 110 beinhaltet, obwohl auch die Rechenvorrichtung 104-1 und die Rechenvorrichtung 104-3 Kopien des Bildnachbearbeitungssystems 110 (nicht gezeigt) beinhalten.
-
Das Bildnachbearbeitungssystem 110 beinhaltet eine Anzeige 122 zum Anzeigen von Bildern, so beispielsweise eines zu bearbeitenden Bildes 106, eines angeglichenen Bildes 112 und dergleichen. Die Anzeige 122 kann ein beliebiger geeigneter Typ von Anzeige sein, so beispielsweise ein berührungsempfindlicher Schirm (touchscreen), eine Flüssigkristallanzeige, eine Plasmaanzeige, eine kopfmontierte Anzeige, ein Projektor und ein Schirm und dergleichen mehr. Das Bildnachbearbeitungssystem 110 beinhaltet zudem Prozessoren 124. Daher kann das Bildnachbearbeitungssystem 110 wenigstens teilweise durch Ausführen von Anweisungen, die in dem Speicher 126 gespeichert sind, auf den Prozessoren 124 implementiert sein. Die Prozessoren 124 können Teile der Bildnachbearbeitungsanwendung 120 ausführen.
-
Der Speicher 126 kann ein beliebiger geeigneter Typ von Speicher sein, der für das Bildnachbearbeitungssystem 110 zugänglich oder in diesem enthalten ist. Der Speicher 126 speichert und bietet Zugang zu und von der Ablage, die in dem Speicher 126 beinhaltet ist, für einen beliebigen Typ von Daten. Der Speicher 126 beinhaltet beispielsweise Dialogdaten 128 (beispielsweise Daten im Zusammenhang mit dem Dialog 108, so beispielsweise eine Aufzeichnung des Dialogs 108, ein Transskript des Dialogs 108, Nutzerbefindlichkeiten, die aus dem Dialog 108 beispielsweise auf Grundlage der zeitlichen Längen zwischen Durchgängen in dem Dialog 108, der Sprechstärke der Sprache 108-1 des Nutzers 102 und dergleichen mehr hergeleitet werden), Objektdaten 130 (beispielsweise Daten zur Darstellung von Objekten in Bildern, so beispielsweise Pixel der zu entfernenden oder zu ersetzenden Objekte, Masken der zu entfernenden oder zu ersetzenden Objekte, Orte von Bildern in dem zu bearbeitenden Bild 106 und dergleichen), Sprachdaten 132 (beispielsweise Ergebnisse einer Sprachanalyse des Dialogs 108, so beispielsweise der Sprachteile des Dialogs 108, Subjekt-Objekt-Paare, Listen von Worten im Zusammenhang mit Subjekten, Objekten oder beides, Synonyme von Objekten, Suchanfragezeichenfolgen und dergleichen mehr), Entfernungsdaten 134 (beispielsweise Daten im Zusammenhang mit einer Entfernungsaufforderung, so beispielsweise Anzahl und Typ der zu entfernenden Objekte, Angaben der Verfügbarkeit von objektspezifischen Modulen im Zusammenhang mit einem zu entfernenden Objekt, Kopien von Daten, die aus dem zu bearbeitenden Bild 106 entfernt werden sollen, und dergleichen mehr), Ersetzungsdaten 136 (beispielsweise Daten im Zusammenhang mit einer Ersetzungsaufforderung, so beispielsweise Anzahl und Typ der zu ersetzenden Objekte, Beschreibungen der Ersetzungsobjekte zur Ersetzung der Objekte, Angaben der Verfügbarkeit von objektspezifischen Modulen im Zusammenhang mit einem zu ersetzenden Objekt, Kopien von Daten, die in einem zu bearbeitenden Bild 106 ersetzt werden, und dergleichen mehr), sowie Bilddaten 138 (beispielsweise Daten zur Darstellung beliebiger geeigneter Bilder, so beispielsweise des zu bearbeitenden Bildes 106, der zusammengestellten Bilder, der angeglichenen Bilder (beispielsweise des angeglichenen Bildes 112), bezogene Bilder, die Füllmaterial oder Ersetzungsmaterial beinhalten, Angleichungsdaten und dergleichen mehr).
-
Des Weiteren beinhaltet das Bildnachbearbeitungssystem 110 ein Sender-Empfänger-Modul (transceiver module) 140. Das Sender-Empfänger-Modul 140 stellt eine Funktionalität dar, die dafür konfiguriert ist, Daten unter Nutzung eines beliebigen geeigneten Typs und einer beliebigen geeigneten Anzahl von Kommunikationsprotokollen zu senden und zu empfangen. Daten innerhalb des Bildnachbearbeitungssystems 110 können beispielsweise mit dem Sender-Empfänger-Modul 140 an den Server 116 übertragen werden. Des Weiteren können Daten von dem Server 116 mit dem Sender-Empfänger-Modul 140 empfangen werden. Das Sender-Empfänger-Modul 140 kann zudem Daten zwischen den Rechenvorrichtungen 104 senden und empfangen.
-
Das Bildnachbearbeitungssystem 110 beinhaltet zudem ein Bildgaleriemodul 142. Das Bildgaleriemodul 142 stellt eine Funktionalität dar, die dafür konfiguriert ist, Bilder, die einem Nutzer, so beispielsweise dem Nutzer 102, zugeordnet sind, vorzuhalten. Das Bildgaleriemodul 142 kann beispielsweise Bibliotheken eines Nutzers mit Bildern verwalten, darunter Bilder, die in einer Bildbearbeitungsanwendung des Nutzers, so beispielsweise in Photoshop®, gespeichert sind. Des Weiteren integriert das Bildgaleriemodul 142 Bilder, die ein Nutzer manipuliert, auf einer der Rechenvorrichtungen 104 oder von dieser in eine Bildergalerie, die in dem Speicher 126 gespeichert ist, so beispielsweise Bilder aus einem Posting eines Nutzers in sozialen Medien oder einem Blog von einer der Rechenvorrichtungen 104, Bilder, die ein Nutzer an eine E-Mail, einen Text oder eine andere Kommunikation, die von den Rechenvorrichtungen 104 gesendet oder durch diese empfangen wird, angehängt hat, und dergleichen mehr. Das Bildgaleriemodul 142 bewirkt, dass Bilder aus Galerien, die von dem Bildgaleriemodul 142 vorgehalten werden, für das Bildnachbearbeitungssystem 120 beispielsweise zur Nutzung als Füllmaterial oder Ersetzungsmaterial verfügbar gemacht werden. Von dem Bildgaleriemodul 142 vorgehaltene Bilder können in den Bilddaten 138 gespeichert werden.
-
Das Bildnachbearbeitungssystem 110 beinhaltet zudem eine Bildnachbearbeitungsanwendung 120. Die Bildnachbearbeitungsanwendung 120 beinhaltet ein Dialogmodul 144, ein Erfassungsmodul (vision module) 146, ein Sprachmodul 148, ein Bildsuchmodul 150, ein Zusammenstellungsmodul 152, ein Angleichungsmodul 154 und ein Anzeigemodul 156. Diese Module arbeiten in Kooperation miteinander, führen einen Nutzerdialog, entfernen und ersetzen Objekte in einem zu bearbeitenden Bild und präsentieren mehrere angeglichene Bilder auf Grundlage des geführten Nutzerdialogs.
-
Des Weiteren sind, obwohl die Beschreibung des Bildnachbearbeitungssystems 110 und der Bildnachbearbeitungsanwendung 120 Entfernungsaufforderungen und Ersetzungsaufforderungen beschreibt, die hier beschriebenen Systeme, Prozeduren und Vorrichtungen nicht auf Entfernungsaufforderungen und Ersetzungsaufforderungen beschränkt. Entfernungsaufforderungen und Ersetzungsaufforderungen sind hier vielmehr als exemplarische Bearbeitungsfunktionen beschrieben, die zu den gängigsten Bearbeitungsfunktionen, die in Bearbeitungsanfragen beinhaltet sind, gehören. Die hier beschriebenen Systeme, Prozeduren und Vorrichtungen, darunter das Bildnachbearbeitungssystem 110 und die Bildnachbearbeitungsanwendung 120 sind zudem dafür betreibbar, weitere Bearbeitungsfunktionen, die in einer Bearbeitungsanfrage beinhaltet sind oder von dieser in einem geführten Nutzerdialog angegeben werden, zu verarbeiten, darunter eine Bewegungsaufforderung (zum Bewegen eines Objektes innerhalb eines Bildes), eine Duplizierungsaufforderung (zum Duplizieren eines Objektes in einem Bild), eine Hinzufügungsaufforderung (zum Hinzufügen eines Objektes in einem Bild), eine Aufforderung zum Intransparentmachen (zum Anpassen der Intransparenz (Opazität) eines Objektes), eine Aufhellungsaufforderung (zum Aufhellen eines Objektes), eine Färbungsaufforderung (zum Anpassen der Farbe eines Objektes), eine Musterungsaufforderung (zum Anpassen des Musters eines Objektes) und dergleichen mehr.
-
Das Dialogmodul 144 stellt eine Funktionalität dar, die dafür konfiguriert ist, einen Nutzerdialog zu führen, der eine Bearbeitungsanfrage für ein zu bearbeitendes Bild beinhaltet. Der Nutzerdialog 108 ist ein Beispiel für einen Nutzerdialog, den das Dialogmodul 144 führen kann. Ein Nutzerdialog kann ein beliebiger geeigneter Typ von Dialog sein, aus dem eine Bearbeitungsanfrage extrahiert werden kann. Ein Nutzerdialog kann einen beliebigen geeigneten Typ von Dialog beinhalten, darunter einen verbalen Dialog (beispielsweise mittels Mikrofonen und Lautsprechern des Dialogmoduls 144), einen geschriebenen Dialog (Der Nutzer kann beispielsweise etwas in eine Tastatur eingeben oder ein Dokument für das Dialogmodul 144 bereitstellen), oder auch Kombinationen aus verbaler Kommunikation und geschriebener Kommunikation. Bei einem Beispiel ist der Nutzerdialog ein geführter Nutzerdialog, und zwar beispielsweise in Form eines Gesprächs mit Fragen und Antworten, die eine Bearbeitungsanfrage angegeben. Das Dialogmodul 144 kann einen Nutzerdialog beispielsweise auf Grundlage eines Ereignisses beginnen, so beispielsweise auf Grundlage dessen, dass ein Nutzer ein zu bearbeitendes Bild angibt, und zwar beispielsweise indem er das zu bearbeitete Bild 106 in die Bildnachbearbeitungsanwendung 120 lädt. Ein Beispiel für einen geführten Nutzerdialog mit verbaler Kommunikation im Gesprächsformat lautet folgendermaßen:
- VORRICHTUNG: Hallo, möchtest Du etwas in dem Bild entfernen oder ersetzen?
- NUTZER: Ich möchte etwas ersetzen.
- VORRICHTUNG: Was möchtest Du ersetzen?
- NUTZER: Den eintönigen Himmel.
- VORRICHTUNG: Wodurch möchtest Du den eintönigen Himmel ersetzen?
- NUTZER: Durch einen wolkenverhangenen Himmel mit Blitz.
-
Zusätzlich oder alternativ beinhaltet der geführte Nutzerdialog eine Bearbeitungsanfrage von einem Nutzer, so beispielsweise „Entferne den Hydrant neben dem Hund“. Daher kann der geführte Nutzerdialog ein beliebiger geeigneter Dialog zwischen einer Rechenvorrichtung (beispielsweise einer der Rechenvorrichtungen 104) und einem Nutzer (beispielsweise dem Nutzer 102) sein und eine beliebige geeignete Anzahl von Sprachdurchgängen beinhalten. Der Umfang der Fragen eines jeden Durchganges aus Frage und Antwort kann in dem geführten Nutzerdialog auf beliebige geeignete Weise eingestellt werden, so beispielsweise auf Grundlage einer vorher empfangenen Nutzerreaktion, auf Grundlage dessen, ob eine Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung angibt, auf Grundlage der Verfügbarkeit von Ressourcen zur Erledigung einer Bearbeitungsaufforderung und dergleichen mehr. Bei einem Beispiel wird der Umfang der Fragen mit jedem Durchgang des geführten Nutzerdialogs enger, und zwar beispielsweise durch bei jedem Durchgang erfolgendes Einbeziehen von mehr Details hinsichtlich einer vorhergehenden Antwort.
-
Entsprechend beinhaltet das Dialogmodul 144 eine Mikrofonfeldanordnung und eine Lautsprecheranordnung, um Sprache an einen Nutzer rundzusenden oder von diesem zu empfangen, oder hat Zugang hierzu. Das Dialogmodul 144 kann beispielsweise eine Bearbeitungsanfrage (beispielsweise „Was möchtest Du in dem Bild entfernen oder ersetzen?“) versenden und von dem Nutzer eine Bestätigung, die ein Objekt angibt, und die Angabe einer Ersetzungsaufforderung oder die Angabe einer Entfernungsaufforderung (beispielsweise „Entferne den Hydrant“) empfangen. Des Weiteren kann das Dialogmodul 144 einen beliebigen geeigneten Typ von Steuerung bzw. Regelung zum Führen eines Nutzerdialogs beinhalten, so beispielsweise ein neuronales Netzwerk, das für das Dialogmodul 144 Fragen, die in dem Nutzerdialog gestellt werden, auf Grundlage von Antworten auf alle von einem Nutzer empfangenen vorherigen Fragen generiert. Bei einem Beispiel kann das Dialogmodul 144 Fragen, die während eines Nutzerdialogs gestellt werden sollen, durch vorsorgliches Initiieren einer Suche nach Details verfügbarer Bilder in einer Bilderdatenbank bestimmen. Fordert ein Nutzer im Verlauf eines Nutzerdialogs beispielsweise das „Hinzufügen eines alten Pickup-Trucks“ zu einem zu bearbeitenden Bild an, so kann das Dialogmodul 144 eine Suche in einer Vorratsbilderdatenbank initiieren, um zu identifizieren, welche Typen von alten Pickup-Trucks in Bildern der Datenbank beinhaltet sind, und als Reaktion auf den Nutzer eine geeignete Frage wie „Möchtest Du einen Chevrolet von 1946 oder einen Ford-Pickup-Truck von 1955?“ auf Grundlage einer Datenbank, die Bilder mit einem Chevrolet-Pickup-Truck von 1946 und einem Ford-Pickup-Truck von 1955 beinhaltet, bereitstellen.
-
Das Dialogmodul 144 stellt eine Bearbeitungsanfrage, die in einem geführten Nutzerdialog beinhaltet ist (oder von diesem angegeben wird), für Module des Bildnachbearbeitungssystems 110 bereit. Eine Bearbeitungsanfrage, die von dem Dialogmodul 144 bereitgestellt wird, kann ein beliebiger geeigneter Typ von Bearbeitungsanfrage sein. Bei einem Beispiel beinhaltet die Bearbeitungsanfrage ein Transskript eines geführten Nutzerdialogs (beispielsweise Text im ASCII-Format). Zusätzlich oder alternativ kann die Bearbeitungsanfrage eine Datenstruktur beinhalten, die mit Worten oder Angaben von Worten eines geführten Nutzerdialogs besiedelt ist. Eine Datenstruktur kann beispielsweise ein Funktionsfeld beinhalten, das mit einer Angabe einer Bearbeitungsfunktion einer Bearbeitungsanfrage besiedelt ist, also beispielsweise „0“ für Entfernen, „1“ für Ersetzen, „2“ für Bewegen, „3“ für Duplizieren, „4“ für Hinzufügen, „5“ für Aufhellen, „6“ für Abdunkeln, „7“ für einen Sepia-Filter und dergleichen mehr. Ein Ersetzungsfeld kann in dem vorstehenden exemplarisch geführten Nutzerdialog mit der Beschreibung eines Objektes besiedelt werden, das ein weiteres Objekt ersetzen soll, so beispielsweise einen „wolkenverhangenen Himmel mit Blitz“.
-
Eine Bearbeitungsanfrage, die von dem Dialogmodul 144 bestimmt wird, wird zusammen mit einer beliebigen geeigneten Information, so beispielsweise mit Text eines geführten Nutzerdialogs, der Anzahl von Sprechdurchgängen in dem geführten Nutzerdialog, Nutzerdaten (beispielsweise Nutzerpräferenzen, Nutzerhistorie, darunter Anzahl und Typ von Bildern, und Bearbeitungsfunktionen, die von einem Nutzer oder für diesen durchgeführt werden und dergleichen mehr), Mikrofoneinstellungen, Lautsprechereinstellungen und dergleichen mehr, die von dem Dialogmodul 144 genutzt oder berechnet werden, in den Dialogdaten 128 des Speichers 126 gespeichert und für Module der Bildnachbearbeitungsanwendung 120 verfügbar gemacht.
-
Das Erfassungsmodul 146 stellt eine Funktionalität dar, die dafür konfiguriert ist, Pixel eines zu bearbeitenden Bildes, die einem zu entfernenden oder zu ersetzenden Objekt entsprechen, das in dem geführten Nutzerdialog angegeben ist, zu ermitteln. Das Erfassungsmodul 146 nimmt eine Segmentierung von Pixeln in dem zu bearbeitenden Bild vor, um Pixel, die einem Objekt entsprechen, auf beliebige geeignete Weise zu bestimmen. Bei einem Beispiel beinhaltet das Erfassungsmodul 146 ein oder mehrere neuronale Netzwerke, die dafür trainiert worden sind, ein spezifisches Objekt, so beispielsweise den Himmel, einen Hydrant, den Hintergrund, ein Auto, eine Person, ein Gesicht und dergleichen mehr, zu identifizieren. Das Erfassungsmodul 146 kann daher beim Ermitteln von Pixeln des Objektes in dem zu bearbeitenden Bild ein neuronales Netzwerk nutzen, das dafür trainiert ist, ein spezifisches Objekt zu identifizieren, das von einer Bearbeitungsanfrage angegeben wird. Beinhaltet eine Bearbeitungsanfrage beispielsweise die Entfernungsaufforderung „Entferne den Hydrant“, so ermittelt das Erfassungsmodul 146 Pixel in dem Bild, die einem Hydrant entsprechen, unter Nutzung eines neuronalen Netzwerkes, das zur Identifizierung von Hydranten mit Trainingsbildern, die Varianten von Hydranten beinhalten, trainiert worden ist. Zusätzlich oder alternativ ermittelt das Erfassungsmodul 146 Pixel in dem zu bearbeitenden Bild, die einem Objekt in einem Bild entsprechen, unter Nutzung eines neuronalen Netzwerkes, das nicht zur Identifizierung des spezifischen Objektes trainiert worden ist, und zwar beispielsweise unter Nutzung eines neuronalen Netzwerkes, das dafür trainiert ist, Insekten, Vögel oder Fledermäuse zu identifizieren, wenn das zu identifizierende Objekt ein Schmetterling ist.
-
Darüber hinaus kann das Erfassungsmodul 146 Pixel eines zu bearbeitenden Bildes für eine beliebige geeignete Anzahl von Objekten in dem Bild ermitteln. Beinhaltet eine Bearbeitungsanfrage die Entfernungsaufforderung „Entferne die Menschen aus dem Bild“, so kann das Erfassungsmodul 146 Pixel in dem Bild, die mehreren Personen entsprechen, dadurch ermitteln, dass es iterativ ein neuronales Netzwerk nutzt, das dafür trainiert ist, eine Person zu identifizieren, oder dadurch, dass es ein neuronales Netzwerk nutzt, das (beispielsweise mit Trainingsbildern, die verschiedene Gruppen von Menschen beinhalten) dafür trainiert ist, mehrere Personen zu identifizieren.
-
Bei einem Beispiel segmentiert das Erfassungsmodul 146 Pixel eines Bildes in Hintergrund- und Vordergrundpixel. Daher kann das Erfassungsmodul 146 eine Hintergrundszene eines Bildes bestimmen, wobei die Hintergrundszene mehrere Objekte beinhalten kann. Bei der Aufforderung „Ersetze den Hintergrund durch ein Bild von Hawaii“ kann das Erfassungsmodul 146 beispielsweise Pixel eines Bildes ermitteln, die einer Hintergrundszene entsprechen, die mehrere Objekte, so beispielsweise Bäume, Felsen, die Sonne, den Mond, Sterne und dergleichen mehr, beinhaltet.
-
Des Weiteren verfügt das Erfassungsmodul 146 über semantisches Verständnis des zu bearbeitenden Bildes, und ist daher fähig, auf Grundlage einer Beschreibung des Objektes in einer Bearbeitungsanfrage zwischen Objekten in dem Bild zu unterscheiden. Beinhaltet die Bearbeitungsanfrage beispielsweise die Entfernungsaufforderung „Entferne den Mann links“, so ist das Erfassungsmodul 146 dazu fähig, „den Mann links“ von anderen Personen in dem Bild zu unterscheiden, und zwar beispielsweise unter Nutzung von Computererfassungsverfahren, die mit neuronalen Netzwerken arbeiten, die durch Deep-Learning-Modelle trainiert werden. Als Folge dessen ist das Erfassungsmodul 146 dazu fähig, Pixel, die einem Objekt entsprechen, das durch eine Bearbeitungsanfrage angegeben ist, dadurch effizient und genau zu ermitteln, dass auf semantisches Wissen über das Bild zurückgegriffen wird.
-
Bei einem Beispiel ermittelt das Erfassungsmodul Pixel, die einem Objekt entsprechen, dadurch, dass es zunächst einen Satz von inversen Pixeln bestimmt, die die Pixel, die dem Objekt entsprechen, nicht beinhalten. Die Pixel, die dem Objekt entsprechen, werden sodann aus dem Satz von inversen Pixeln bestimmt, und zwar beispielsweise als zu den inversen Pixeln ergänzender Satz von Pixeln.
-
Das Erfassungsmodul 146 kann zudem eine Maske generieren, die segmentierte Pixel eines Objektes in einem zu bearbeitenden Bild darstellt. Die Maske kann Pixel darstellen, ohne dass Content der Pixel beinhaltet wäre. Bei einem Beispiel wird eine Objektmaske für ein Objekt generiert, und zwar beispielsweise durch Segmentieren von Pixeln eines zu bearbeitenden Bildes mit einem neuronalen Netzwerk, das dafür trainiert ist, das Objekt zu identifizieren. Die Objektmaske kann verfeinert werden, um eine verfeinerte Maske zu bilden, die Details des Objektes, so beispielsweise Haare, Blätter und dergleichen mehr, erfasst. Eine verfeinerte Maske kann aus einer Objektmaske generiert werden, indem die Objektmaske zur Schaffung eines Bereiches erweitert wird, der vom Rand der Objektmaske (beispielsweise dem inneren Rand der Objektmaske) begrenzt wird, und der Hintergrund des Bildes vom Vordergrund des Bildes in dem Bereich getrennt wird.
-
Des Weiteren kann das Erfassungsmodul 146 veranlassen, dass Zwischenergebnisse in einer Nutzerschnittstelle präsentiert werden. Das Erfassungsmodul 146 kann ein Zwischenbild bereitstellen, in dem eine Angabe eines Objektes angezeigt wird. Eine Bestätigung des Objektes kann (beispielsweise unter Nutzung einer multimodalen Eingabe, wie nachstehend noch detaillierter beschrieben wird) empfangen werden, ein Nutzer muss die Auswahl des Objektes anpassen, und das Erfassungsmodul 146 kann Pixel, die einem Objekt entsprechen, auf Grundlage der Bestätigung oder Anpassung durch den Nutzer aktualisieren.
-
Segmentierte Pixel, die von dem Erfassungsmodul 146 bestimmt werden, werden zusammen mit einer beliebigen geeigneten Information, so beispielsweise mit der Anzahl von segmentierten Objekten, Typen von segmentierten Objekten (beispielsweise Person, Hund, Hydrant, Hintergrund, Himmel, Baum und dergleichen mehr), inversen Pixeln, Objektmasken, verfeinerten Masken, Bereichen, die beim Generieren von verfeinerten Masken genutzt werden, einer Kopie eines zu bearbeitenden Bildes und dergleichen mehr, die von dem Erfassungsmodul 146 genutzt oder berechnet werden, in Objektdaten 130 des Speicherns 126 gespeichert und für Module der Bildnachbearbeitungsanwendung 120 verfügbar gemacht.
-
Das Sprachmodul 148 stellt eine Funktionalität dar, die dafür konfiguriert ist, dasjenige, ob eine Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet, und Parameter der Aufforderung, beispielsweise dahingehend, was entfernt oder ersetzt werden soll und wodurch es ersetzt werden soll, zu bestimmen. Das Sprachmodul 148 verarbeitet die Bearbeitungsanfrage (die beispielsweise von dem Dialogmodul 144 bereitgestellt wird) auf beliebige geeignete Weise, um zu bestimmen, ob die Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet, und die Parameter der Aufforderung. Bei einem Beispiel führt das Sprachmodul 148 ein Worterkennen (wordspotting) an einer Bearbeitungsanfrage aus, um Schlüsselworte und Modifizierer der Schlüsselworte zu identifizieren. Bei der Ersetzungsaufforderung „Ersetze das Auto durch einen blauen Truck“ identifiziert das Sprachmodul 148 beispielsweise die Objekte „Auto“ und „Truck“ sowie das Adjektiv „blau“ als Schlüsselworte. Das Worterkennen (wordspotting) zum Identifizieren von Schlüsselworten kann auf beliebige geeignete Weise an der Bearbeitungsanfrage vorgenommen werden, beispielsweise unter Nutzung eines Verschiebefensters von Worten und Verarbeitung der Worte unter dem Verschiebefenster, durch Hypothesentests, durch Codieren, durch Decodieren, durch Kombinationen hieraus und dergleichen mehr. Zusätzlich oder alternativ verarbeitet das Sprachmodul 148 eine Bearbeitungsanfrage unter Nutzung eines für natürliche Sprache gegebenen Prozessors, der mit Bearbeitungsanfragen trainiert worden ist, um ein Verständnis für die Sprache zu entwickeln.
-
Das Sprachmodul 148 bestimmt eine Funktion einer Bearbeitungsaufforderung, und zwar beispielsweise dahingehend, ob eine Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet (und zwar beispielsweise durch Abgleichen von Worten oder Synonymen zu Worten in einer Bearbeitungsanfrage mit „Entfernen“ oder „Ersetzen“). Bei einem Beispiel bestimmt das Sprachmodul 148, ob eine Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet, auf Grundlage eines Abgleichs von Worten eines geführten Nutzerdialogs mit Listen von Worten, die als ähnlich zu „Entfernen“ beziehungsweise „Ersetzen“ bestimmt worden sind. Darüber hinaus kann das Sprachmodul Bearbeitungsfunktionen über das „Entfernen“ und „Ersetzen“ hinaus identifizieren, so beispielsweise zum Bewegen eines Objektes, zum Anpassen der Intransparenz eines Objektes, zum Aufhellen eines Teiles eines Bildes, zum Abdunkeln eines Teiles eines Bildes, zum Anpassen des Kontrastes, zum Duplizieren eines Objektes, zum Hinzufügen eines Objektes, zum Bewegen eines Objektes und dergleichen mehr.
-
Bei einem Beispiel verarbeitet das Sprachmodul 148 eine Bearbeitungsanfrage durch Entfernen von Satzzeichen und Spezialzeichen (beispielsweise Sternchen und kaufmännisches Und) und Stoppwörtern (beispielsweise dem Artikel „der/die/das“). Jedem verbleibenden Wort in der Bearbeitungsanfrage werden Vektoren in einem Vektorraum zugewiesen. Die Vektorraumpositionsvektoren der Worte, beispielsweise derjenigen Worte, die gemeinsame Kontexte teilen, sind in dem Vektorraum nahe beieinander befindlich. Bei einem Beispiel wird eine word2vec-Funktion verwendet, um Vektoren (beispielsweise für Worte und Gruppen von Worten einer Bearbeitungsanfrage) zu erzeugen.
-
Ähnlichkeitskennwerte zwischen Vektoren von Worten und einem Vektor für die Bearbeitungsanfrage mit jeweils entfernten Satzzeichen, Spezialzeichen und Stoppwörtern werden auf Grundlage von Kosinusähnlichkeiten der Vektoren bestimmt. Ähnlichkeitskennwerte können miteinander und mit Schwellen verglichen werden, um ein zu entfernendes oder zu ersetzendes Objekt zu bestimmen. Der Ähnlichkeitskennwert für das Wort „Himmel“ mit der Ersetzungsaufforderung „Ersetze den eintönigen Himmel durch einen wolkenverhangenen Himmel“ weist beispielsweise einen höheren Ähnlichkeitskennwert als das Wort „Hintergrund“ mit der Ersetzungsaufforderung „Ersetze den eintönigen Himmel durch einen wolkenverhangenen Himmel“ auf. Demgegenüber weist der Ähnlichkeitskennwert für das Wort „Himmel“ mit der Ersetzungsaufforderung „Ersetze den Hintergrund durch einen Strand“ einen niedrigeren Ähnlichkeitskennwert als das Wort „Hintergrund“ mit der Ersetzungsaufforderung „Ersetze den Hintergrund durch einen Strand“ auf. Daher können aus Wortvektoren bestimmte Ähnlichkeitskennwerte genutzt werden, um ein zu ersetzendes oder ein aus einem Bild zu entfernendes Objekt zu bestimmen.
-
Des Weiteren kann das Sprachmodul 148 Subjekt-Objekt-Paare aus einer Eingabeanfrage oder einer Zeichenfolge von Worten eines geführten Nutzerdialogs identifizieren. Bei einem Beispiel kann ein Subjektabschnitt einer Eingabeanfrage etwas bezeichnen, das ersetzt oder entfernt werden soll (beispielsweise einen eintönigen Himmel), während ein Objektabschnitt einer Eingabeanfrage bezeichnen kann, wodurch das Subjekt ersetzt werden soll (beispielsweise einen wolkenverhangenen Himmel). Eine Zeichenfolge (beispielsweise eine Bearbeitungsanfrage) ist in einen ersten Teil, der Worte im Zusammenhang mit einem Subjektabschnitt der Subjekt-Objekt-Paare enthält, und einen zweiten Teil, der Worte im Zusammenhang mit einem Objektabschnitt der Subjekt-Objekt-Paare enthält, getrennt. Der erste Teil und der zweite Teil können zu einer oder mehreren Listen von Worten zusammengestellt und dafür genutzt werden, Bilder mit Füllmaterial, Ersetzungsmaterial oder mit Kombinationen hieraus zu beziehen. Das Sprachmodell 148 kann beispielsweise Listen von Worten, bei denen der erste Teil und der zweite Teil von dem Sprachmodul 148 generiert worden sind, für das Bildsuchmodul 150 bereitstellen, das Bilder, die Füllmaterial beinhalten, auf Grundlage einer Suche nach Bildern unter Nutzung von Worten des ersten Teiles bezieht und das Bilder, die Ersetzungsmaterial beinhalten, auf Grundlage einer Suche nach Bildern unter Nutzung von Worten des zweiten Teiles bezieht.
-
Zusätzlich oder alternativ kann das Sprachmodul 148 Synonyme von Worten in einer Bearbeitungsanfrage generieren, wobei die Synonyme dafür genutzt werden können, eine Suchanfrage (beispielsweise durch das Bildsuchmodul 150) zu erstellen oder Pixel eines zu bearbeitenden Bildes (beispielsweise durch das Erfassungsmodul 146) zu ermitteln. Eine Bearbeitungsanfrage kann beispielsweise die Entfernungsaufforderung „Entferne den Geist im Fenster“ beinhalten. In diesem Fall kann das Sprachmodul 148 das Wort „Reflexion“ als Synonym zu „Geist“ generieren und an das Erfassungsmodul 146 als zu segmentierendes Objekt weiterreichen. Anstatt dessen, dass das Erfassungsmodul 146 nach einem Geist (beispielsweise der Erscheinung eines Toten) sucht, wird das Erfassungsmodul 146 angewiesen, nach Reflexionen in einem Fenster zu suchen. Das Wort „Geist“ kann von dem Sprachmodul 148 zudem als umgangssprachliches, zweideutiges oder unangemessenes Wort markiert werden, wobei ihm dann eine vergleichsweise niedrige Gewichtung zugewiesen werden kann (oder es ignoriert werden kann), wenn nach Objekten in einem zu bearbeitenden Bild gesucht wird oder eine Suchanfrage nach Bildern mit Füllmaterial oder Ersetzungsmaterial generiert wird.
-
Bei einem Beispiel verarbeitet das Sprachmodul
148 eine Bearbeitungsanfrage, um Parameter der Bearbeitungsanfrage (beispielsweise das Hinzuzufügende, das zu Entfernende, das zu Ersetzende, das zu Bewegende, das ein Objekt Ersetzende, den Typ von Ersetzungsaufforderung, so beispielsweise eine Ersetzungsaufforderung für Himmel, den Typ von Entfernungsaufforderung, so beispielsweise eine Entfernungsaufforderung für eine Person und dergleichen mehr) zu beziehen, und führt den Vorgang der Bildnachbearbeitungsanwendung
120 durch Aufrufen geeigneter Funktionen in geeigneten Reihenfolgen auf Grundlage der Parameter der Bearbeitungsanfrage durch. Die Parameter können beispielsweise als Variablen an Funktionen weitergereicht und zur Parametrisierung der Funktionen genutzt werden. Darüber hinaus können Funktionen, die für ein zu entfernendes oder zu ersetzendes Objekt spezifisch sind, aufgerufen werden. Bei einem Beispiel beinhaltet der Pseudocode in Tabelle 1 spezifische Ersetzungs- und Entfernungsfunktionen zur Ersetzung und Entfernung spezifischer Objekte eines Hintergrundes und eines Himmels, wie auch allgemeine Ersetzungs- und Entfernungsfunktionen für Objekte.
-
In dem Pseudocode von Tabelle 1 sind Funktionen fettgedruckt und werden durch Objekte der Bearbeitungsanfrage gemäß Bestimmung durch das Sprachmodul 148 parametrisiert. Daher kann ein geführter Nutzerdialog von dem Sprachmodul 148 direkt abgebildet werden, um Funktionen, die mehrere angeglichene Bilder generieren, zu entfernen und zu ersetzen.
-
Eine Bestimmung dessen, ob eine Bearbeitungsanfrage eine Entfernungsaufforderung oder Ersetzungsaufforderung aus der Generierung durch das Sprachmodul 148 beinhaltet, zusammen mit einer beliebigen geeigneten Information, so beispielsweise mit Parametern einer Bearbeitungsanfrage (Einzelheiten dahingehend, was ein Objekt ersetzen soll, nebst Angabe eines beziehbaren geeigneten Ersetzungsmaterials), Listen von Worten, die aus Subjekt-Objekt-Paaren generiert werden, Tabellen von Synonymen zu Worten in einer Bearbeitungsanfrage, Angaben zu umgangssprachlichen oder unangemessenen Worten und dergleichen, die von dem Sprachmodul 148 genutzt oder berechnet werden, wird in den Sprachdaten 132 des Speichers 126 gespeichert und für Module der Bildnachbearbeitungsanwendung 120 verfügbar gemacht.
-
Das Bildsuchmodul 150 stellt eine Funktionalität dar, die dafür konfiguriert ist, Bilder zu beziehen, die zum Nachbearbeiten eines zu bearbeitenden Bildes, so beispielsweise des zu bearbeitenden Bildes 106, genutzt werden können. Entsprechend können die von dem Bildsuchmodul 150 bezogenen Bilder Füllmaterial, Ersetzungsmaterial oder Kombinationen hieraus beinhalten. Das Füllmaterial ist ein Material aus einem Bild zum Füllen eines Loches, das geschaffen wird, wenn ein Objekt aus einem zu bearbeitenden Bild entsprechend einer Entfernungsaufforderung entfernt wird. Bei einem Beispiel wird das Füllmaterial aus dem angeglichenen Bild 112 oder dem zu bearbeitenden Bild 106 (beispielsweise aus dem nachzubearbeitenden Bild selbst) bezogen. Das Ersetzungsmaterial ist Material aus einem Bild zum Ersetzen eines Objektes entsprechend einer Ersetzungsaufforderung. Bei einem Beispiel wird das Füllmaterial als ähnlich zu verschiedenen Pixeln eines zu bearbeitenden Bildes im Vergleich zu den Pixeln, die einem aus dem zu bearbeitenden Bild zu entfernenden Objekt entsprechen, erkannt. Beim Entfernen eines Hydranten von einem Rasen kann das Füllmaterial beispielsweise zu Pixeln des Rasens, jedoch nicht zu denjenigen des Hydranten ähnlich sein. Zusätzlich oder alternativ kann Ersetzungsmaterial als ähnlich zu Pixeln, die einem aus einem zu bearbeitenden Bild zu entfernenden Objekt entsprechen, erkannt werden (Beispielsweise werden beim Ersetzen eines eintönigen Himmels durch einen wolkenverhangenen Himmel Pixel des wolkenverhangenen Himmels als ähnlich zu dem eintönigen Himmel erkannt, da sie jeweils Himmel darstellen). Darüber hinaus entspricht das Ersetzungsmaterial einer Ersetzungsaufforderung. Auch bei diesem Beispiel stellt das Ersetzungsmaterial einen wolkenverhangenen Himmel und keinen eintönigen Himmel dar.
-
Das Bildsuchmodul 150 empfängt daher eine beliebige geeignete Information und eine Anweisung zum Beziehen von Bildern, die Füllmaterial oder Ersetzungsmaterial beinhalten. Bei einem Beispiel empfängt das Bildsuchmodul Listen von Objekten von dem Sprachmodul 148 und erstellt Suchanfragen für Bilder auf Grundlage der Liste von Objekten. Eine Suchanfrage kann beispielsweise beinhalten, dass eine Anfragezeichenfolge, die Kombinationen von Worten aus einem Nutzerdialog beinhaltet, mit Synonymen anderer Worte aus dem Nutzerdialog gebildet wird, und zwar beispielsweise durch Bilden einer Suchzeichenfolge aus der Kombination von „Semi-Truck, Freightliner“ für die Bearbeitungsanfrage, die die Ersetzungsaufforderung „Ersetze den Laster von Peterbilt durch einen Freightliner“ beinhaltet, wobei Semi-Truck ein Synonym für Laster ist.
-
Das Bildsuchmodul 150 hat Zugang zu Bildern, die von dem Bildgaleriemodul 142 verwaltet werden, um Bilder mit Füllmaterial oder Ersetzungsmaterial zu beziehen. Des Weiteren kann das Bildsuchmodul 150 ein Sender-Empfänger-Modul 140 nutzen, um ein beliebiges geeignetes Bild aus einer beliebigen geeigneten Quelle zu beziehen, darunter Bilder aus einem Dateiverzeichnis des Nutzers auf den Rechenvorrichtungen 104 oder dem Server 116, Bilder aus einer Fotogalerie des Nutzers (beispielsweise von einem Online-Foto-Sharing-Dienst, Bilder, die in einer Bildbearbeitungsanwendung wie Photoshop® des Nutzers gespeichert sind), Bilder, die ein Nutzer in einem Post eines sozialen Netzwerkes, einem Blog oder einem Online-Kommentar und dergleichen gepostet hat, Bilder, die ein Nutzer an eine E-Mail, einen Text oder eine andere Kommunikation, die von den Rechenvorrichtungen 104 gesendet oder empfangen wird, angehängt hat, Bilder, die von einem Suchdienst bereitgestellt werden, so beispielsweise bei der Online-Suche nach zu einem angeglichenen Bild 112 ähnlichen Bildern, Bilder, die aus einer Vorratsbilderdatenbank bezogen werden, Bilder, die von einem Nutzer 102 bezogen werden, so beispielsweise ein Bild, über das der Nutzer 102 gegebenenfalls verfügt und das ähnlich zu dem zu bearbeitenden Bild 106 ist, und dergleichen mehr. Daher bezieht das Bildsuchmodul 150 über das zu bearbeitende Bild 106 hinaus Bilder, die zur Nachbearbeitung des zu bearbeitenden Bildes 106 genutzt werden können, und zwar beispielsweise durch Hinzufügen von Füllmaterial oder Ersetzungsmaterial aus einem von dem Bildsuchmodul 150 bezogenen Bild.
-
Bei einem Beispiel werden ein oder mehrere Bilder, die Füllmaterial beinhalten, das von dem Bildsuchmodul 150 bezogen wird, auf Grundlage einer Suche nach Bildern unter Nutzung von Worten eines ersten Teiles einer Zeichenfolge bezogen, der Worte für die Zeichenfolge im Zusammenhang mit einem Subjektabschnitt von Subjekt-Objekt-Paaren der Zeichenfolge enthält, und es werden ein oder mehrere Bilder, die das Ersetzungsmaterial beinhalten, das von dem Bildsuchmodul 150 bezogen wird, auf Grundlage einer Suche nach Bildern unter Nutzung von Worten eines zweiten Teiles der Zeichenfolge bezogen, der Worte der Zeichenfolge im Zusammenhang mit einem Objektabschnitt der Subjekt-Objekt-Paare enthält. Der erste Teil und der zweite Teil der Zeichenfolge können von dem Sprachmodul 148 bereitgestellt werden. Eine vorgeschriebene Anzahl von Bildern (beispielsweise 100) kann von dem Bildsuchmodul 150 auf Grundlage der Suche ausgegeben werden, darunter die besten N Bilder (beispielsweise die besten 100 Bilder), oder die besten x% (beispielsweise die besten 10% der Bilder).
-
Von dem Bildsuchmodul 150 bezogene Bilder werden zusammen mit beliebiger geeigneter Information, so beispielsweise Suchzeichenfolgen, Statistiken der ausgegebenen Suchergebnisse und dergleichen, die von dem Bildsuchmodul 150 genutzt oder berechnet werden, in den Bilddaten 138 des Speichers 126 gespeichert und für Module der Bildnachbearbeitungsanwendung 120 verfügbar gemacht.
-
Das Zusammenstellungsmodul 152 stellt eine Funktionalität dar, die dafür konfiguriert ist, ein zu bearbeitendes Bild nachzubearbeiten, indem Füllmaterial, Ersetzungsmaterial oder Kombinationen hieraus mit einem zu bearbeitenden Bild zusammengestellt werden. In Reaktion auf eine Bearbeitungsanfrage, die eine Entfernungsaufforderung beinhaltet, entfernt das Zusammenstellungsmodul 152 Content aus Pixeln eines zu bearbeitenden Bildes (beispielsweise entsprechend einem zu entfernenden Objekt) und fügt Füllmaterial zu den Pixeln des Bildes hinzu, um ein oder mehrere zusammengestellte Bilder zu bilden. Hierbei wird das Füllmaterial zum Füllen eines Loches genutzt, wenn ein Objekt entfernt wird. Der aus dem zu bearbeitenden Bild entfernte Content wird in den Entfernungsdaten 134 des Speichers 126 gespeichert. Das Füllmaterial kann in einem oder mehreren Bildern, die von dem Bildsuchmodul 150 bezogen werden, beinhaltet sein. Zusätzlich oder alternativ kann Füllmaterial in dem zu bearbeitenden Bild selbst beinhaltet sein. In Folge dessen kann das Zusammenstellungsmodul 152 mehrere zusammengestellte Bilder erzeugen, von denen jedes Füllmaterial aus einem anderen Bild, dem gleichen Bild oder aus Kombinationen hieraus beinhaltet. Bei einem Beispiel werden Zwischenergebnisse in einer Nutzerschnittstelle dargestellt, die mehrere verschiedene Füllmaterialien zeigt. Ein Nutzer kann auswählen, welche Option er für das Füllmaterial in dem zu bearbeitenden Bild nutzt (und zwar beispielsweise durch Sprache, Berühren eines berührungsempfindlichen Schirms, Klicken mit einer Maus oder auch durch Kombinationen hieraus).
-
Darüber hinaus ersetzt das Zusammenstellungsmodul 152 in Reaktion auf eine Bearbeitungsanfrage, die eine Ersetzungsaufforderung beinhaltet, Content von Pixeln eines zu bearbeitenden Bildes (beispielsweise entsprechend einem zu ersetzenden Objekt) durch Ersetzungsmaterial und bildet so ein oder mehrere zusammengestellte Bilder. In einem zu bearbeitenden Bild ersetzter Content wird in den Ersetzungsdaten 136 des Speichers 126 gespeichert. Das Ersetzungsmaterial kann in einem oder mehreren Bildern, die von dem Bildsuchmodul 150 bezogen werden, beinhaltet sein. Zusätzlich oder alternativ kann Ersetzungsmaterial in dem zu bearbeitenden Bild selbst beinhaltet sein (ein Nutzer möchte gegebenenfalls ein Objekt in einem Bild duplizieren).
-
Das Zusammenstellungsmodul 152 kann Füllmaterial und Ersetzungsmaterial mit dem zu bearbeitenden Bild auf beliebige geeignete Weise zusammenstellen. Bei einem Beispiel empfängt das Zusammenstellungsmodul 152 von dem Sprachmodul 148 eine Anweisung, die eine Funktion der Bildbearbeitung (beispielsweise Entfernen oder Ersetzen) angibt, und von dem Bildsuchmodul 150 Bilder mit Füllmaterial oder Ersetzungsmaterial. Auf Grundlage der Objekte und Daten, die von dem Erfassungsmodul 146 angegeben werden (beispielsweise segmentierte Pixel, Masken und dergleichen) stellt das Zusammenstellungsmodul 152 das Füllmaterial oder Ersetzungsmaterial entsprechend der Bearbeitungsanfrage zusammen, um mehrere zusammengestellte Bilder zu erzeugen.
-
Zusätzlich oder alternativ kann das Zusammenstellungsmodul 152 Beiträge zu Pixeln aus einem Hintergrund eines zu bearbeitenden Bildes in einem Prozess, der als Hintergrundbereinigung (background decontamination) bezeichnet wird, entfernen. Beispielsweise kann ein Bereich, der vom Rand einer Objektmaske begrenzt wird, (beispielsweise in dem Erfassungsmodul 146) durch die Objektmaske erweitert werden. Innerhalb dieses Bereiches kann ein prozentualer Anteil eines Pixels dem Objekt zugeordnet werden, und es kann der verbleibende prozentuale Anteil dem Hintergrund zugeordnet werden. Bei einem Beispiel wird ein detailreiches Objekt, also beispielsweise braune Haare vor blauem Hintergrund, betrachtet. Für jedes Pixel des Haares in einem Bereich wird ein prozentualer Anteil des Pixels dem braunen Haar zugeordnet (beispielsweise 70%), während der verbleibende prozentuale Anteil (beispielsweise 30%) dem blauem Hintergrund zugeordnet wird. Der Beitrag des Hintergrundes (in diesem Beispiel 30% blau) kann aus dem Pixel entfernt werden, was einen Halo-Effekt in dem zusammengestellten Bild verhindert.
-
Bei einem Beispiel wird ein Zusammenstellungsmodul, das für ein in einem zu bearbeitenden Bild zu entfernendes oder zu ersetzendes Objekt spezifisch ist, von dem Zusammenstellungsmodul 152 zur Bildung zusammengestellter Bilder genutzt. Ein Zusammenstellungsmodul, das beispielsweise für ein Himmelsobjekt spezifisch ist, also beispielsweise ein Himmelszusammenstellungsmodul, das ein neuronales Netzwerk beinhaltet, das dafür trainiert ist, Himmel mit Trainingsbildern, die jeweils verschiedenen Himmel beinhalten, zu trainieren, wird beim Bilden eines zusammengestellten Bildes, in dem der Himmel ersetzt wird, genutzt.
-
Zusammengestellte Bilder, die von dem Zusammenstellungsmodul 152 generiert werden, werden zusammen mit beliebiger geeigneter Information, so beispielsweise mit einer Rangbewertung der zusammengestellten Bilder, die von dem Zusammenstellungsmodul 152 entsprechend einer Optimalanpassung der Zusammenstellung bestimmt wird, entferntem Content, ersetztem Content, Beiträgen von Content (beispielsweise Hintergrund), der aus Pixeln entfernt worden ist, und dergleichen, die von dem Zusammenstellungsmodul 152 genutzt oder berechnet werden, in dem Speicher 126, beispielsweise in den Bilddaten 128, gespeichert und für Module der Bildnachbearbeitungsanwendung 120 verfügbar gemacht.
-
Das Angleichungsmodul 154 stellt eine Funktionalität dar, die dafür konfiguriert ist, ein zusammengestelltes Bild anzugleichen, um ein angeglichenes Bild zu bilden, das natürlich wirkt und in dem Artefakte der Bildbearbeitung, darunter des Entfernens eines Objektes und des Ersetzens eines Objektes in einem Bild, entfernt sind. Das Angleichungsmodul 154 kann ein zusammengestelltes Bild auf beliebige geeignete Weise angleichen, damit es natürlich und unbearbeitet wirkt. Das Angleichungsmodul 154 kann beispielsweise die Beleuchtung in dem Bild lokal oder global anpassen. Bei einem Beispiel wird die Beleuchtung in einem Abschnitt eines zusammengestellten Bildes (beispielsweise in einem Ersetzungsmaterial) angepasst, damit sie auf die Beleuchtung in einem anderen Abschnitt des zusammengestellten Bildes abgestimmt ist. Die Beleuchtung kann dafür angepasst werden, dass verschiedene Tageszeiten zwischen dem Ersetzungsmaterial und einem zu bearbeitenden Bild berücksichtigt werden, weshalb Schatten und Hervorhebungen in einem angeglichenen Bild derart angepasst werden können, dass sie auf bestimmte Tageszeiten abgestimmt sind.
-
Zusätzlich oder alternativ wird das Angleichen von einem Angleichungsmodul, das für ein in einem zu bearbeitenden Bild zu entfernendes oder zu ersetzendes Objekt spezifisch ist, durchgeführt. Ein Angleichungsmodul, das beispielsweise für ein Fahrradobjekt spezifisch ist, also ein Fahrradangleichungsmodul, das ein neuronales Netzwerk beinhaltet, das dafür trainiert ist, ein Fahrrad mit Trainingsbildern, die verschiedene Fahrräder beinhalten, anzugleichen, wird beim Angleichen eines zusammengestellten Bildes, in dem ein Fahrrad ersetzt worden ist, genutzt.
-
Das Angleichungsmodul 154 kann zudem eine Hintergrundbereinigung durchführen, bei der Beiträge eines Hintergrundes eines Bildes zu Pixeln in einem Bereich aus den Pixeln, wie vorstehend erläutert worden ist, entfernt werden.
-
Angeglichene Bilder, die von dem Angleichungsmodul 154 generiert werden, zusammen mit beliebiger geeigneter Information, so beispielsweise mit Parametern des Angleichungsalgorithmus, Angaben zu genutzten neuronalen Netzwerken, Angaben zu Bereichen, in denen eine Angleichung erfolgt, und dergleichen, die von dem Angleichungsmodul 154 genutzt oder berechnet werden, werden in dem Speicher 126, beispielsweise in den Bilddaten 138, gespeichert und für Module der Bildnachbearbeitungsanwendung 120 verfügbar gemacht.
-
Das Anzeigemodul 156 stellt eine Funktionalität dar, die dafür konfiguriert ist, Bilder des Bildnachbearbeitungssystems 110 in einer Nutzerschnittstelle zu präsentieren. Eine Nutzerschnittstelle kann auf der Anzeige 122 der Rechenvorrichtung 104 angezeigt werden (Eine exemplarische Nutzerschnittstelle wird nachstehend detaillierter anhand 5 erläutert). Das Anzeigemodul 156 kann ein beliebiges geeignetes Bild in einer Nutzerschnittstelle präsentieren, darunter Bilder, die von dem Bildsuchmodul 150 bezogen werden, zusammengestellte Bilder, die von dem Zusammenstellungsmodul 152 generiert werden, angeglichene Bilder, die von dem Angleichungsmodul 154 generiert werden (beispielsweise das angeglichene Bild 112), ein zu bearbeitendes Bild (beispielsweise das zu bearbeitende Bild 106), Zwischenbilder (Bilder mit Angaben zu Objekten, die von dem Erfassungsmodul 146 segmentiert worden sind), Kombinationen hieraus und dergleichen mehr.
-
Nach erfolgter Betrachtung einer exemplarischen Digitalmedienumgebung folgt nunmehr eine Diskussion exemplarischer Flussdiagramme von Bildern entsprechend Aspekten des Entfernens und Ersetzens von Objekten in einem Bild.
-
Exemplarische Bilder
-
2 zeigt ein exemplarisches Flussdiagramm 200 von Bildern, die einer Ersetzungsaufforderung entsprechen, entsprechend einem oder mehreren Aspekten der Offenbarung. Das Flussdiagramm 200 beinhaltet ein zu bearbeitendes Bild 202, einen geführten Nutzerdialog 204 (in einer Dialogblase angegeben) zwischen einer Vorrichtung und einem Nutzer (beispielsweise zwischen einer der Rechenvorrichtungen 104 und dem Nutzer 102 von 1) und ein angeglichenes Bild 206. Der geführte Nutzerdialog 204 ist ein Beispiel für den Nutzerdialog 108 von 1, während das angeglichene Bild 206 ein Beispiel für das angeglichene Bild 112 von 1 ist. Daher kann das zu bearbeitende Bild 202 von dem Bildgaleriemodul 142 bezogen oder mit diesem koordiniert werden, es kann der geführte Nutzerdialog 204 von dem Dialogmodul 144 in Kooperation mit dem Sprachmodul 148 geführt werden, und es kann das angeglichene Bild 206 von dem Angleichungsmodul 154 von 1 generiert werden.
-
Der geführte Nutzerdialog 204 kann auf beliebige geeignete Weise initiiert werden. Bei einem Beispiel wird der geführte Nutzerdialog 204 in Reaktion auf ein zur Bearbeitung erfolgendes Markieren des zu bearbeitenden Bildes 202 initiiert, und zwar beispielsweise dadurch, dass ein Nutzer das zu bearbeitende Bild 202 zur Bearbeitung auswählt, das zu bearbeitende Bild 202 in eine Bildbearbeitungsanwendung (beispielsweise die Bildnachbearbeitungsanwendung 120) lädt und dergleichen. Der geführte Nutzerdialog 204 ist ein Gesprächsformat mit Fragen und Antworten, bei dem eine Vorrichtung (beispielsweise eine der Rechenvorrichtungen 104 von 1) Fragen stellt und ein Nutzer (beispielsweise der Nutzer 102 in 1) antwortet.
-
Bei dem geführten Nutzergespräch 204 fragt eine Vorrichtung „Hallo, möchtest Du etwas in dem Bild entfernen oder ersetzen?“, worauf der Nutzer antwortet „Ja, ersetzen“. Die Vorrichtung führt den Dialog durch die Frage „Was möchtest Du ersetzen?“, worauf der Nutzer antwortet „Den eintönigen Himmel“. Die Vorrichtung führt den Dialog erneut durch Verengen der Parameter der Ersetzungsaufgabe und fragt „Wodurch möchtest Du den eintönigen Himmel ersetzen?“. Durch Aufnahme des zu ersetzenden Objektes (beispielsweise des eintönigen Himmels) in die Frage an den Nutzer macht die Vorrichtung ein implizites Angebot zur Bestätigung durch den Nutzer. Reagiert der Nutzer beispielsweise mit einer Berichtigung der Vorrichtung, indem er so etwas wie „Ich habe nicht ,eintöniger Himmel' (boring sky), sondern ,Beerenkuchen' (berry pie) gesagt“, so verfügt die Vorrichtung über ein implementiertes effizientes Mittel zur Berichtigung, da keine explizite Anfrage mit der Bitte um Berichtigung benötigt wird. Im Ergebnis schlussfolgert die Vorrichtung, wenn der Nutzer nicht mit einer Berichtigung der Vorrichtung reagiert, äußerst zuverlässig, dass „Eintöniger Himmel“ richtigerweise durch den Nutzerdialog identifiziert worden ist. Daher können das Dialogmodul 144 und das Sprachmodul 148 in 1 im Verlauf des geführten Nutzerdialogs zusammenarbeiten.
-
Weiterhin reagiert der Nutzer bei dem exemplarischen geführten Nutzerdialog 204 in 2 mit „woikenverhangener Himmel“, was gegenüber der Vorrichtung angibt, dass der eintönige Himmel durch einen wolkenverhangenen Himmel ersetzt werden soll. In Reaktion hierauf generiert die Vorrichtung das angeglichene Bild 206, das einen wolkenverhangenen Himmel beinhaltet. Das angeglichene Bild 206 wirkt natürlich und weist keinerlei Bearbeitungsartefakte, so beispielsweise Halos, auf, die in zusammengestellten Bildern oftmals vorhanden sind.
-
3 zeigt ein exemplarisches Flussdiagramm 300 für Bilder, die einer Entfernungsaufforderung entsprechen, entsprechend einem oder mehreren Aspekten der Offenbarung. Obwohl das Beispiel von 3 Bilder für eine Entfernungsaufforderung beschreibt, sind die Bilder von 3 auch für andere Bearbeitungsfunktionen anwendbar, so beispielsweise bei einer Ersetzungsaufforderung, einer Bewegungsaufforderung (zum Bewegen eines Objektes innerhalb eines Bildes), einer Duplizierungsaufforderung (zum Duplizieren eines Objektes in einem Bild), einer Hinzufügungsaufforderung (zum Hinzufügen eines Objektes zu einem Bild) und dergleichen.
-
Das exemplarische Flussdiagramm 300 in 3 beinhaltet ein zu bearbeitendes Bild 302, einen geführten Nutzerdialog 304, eine Objektmaske 306, eine verfeinerte Maske 308, ein Füllmaterial 310, ein zusammengestelltes Bild 312 und ein angeglichenes Bild 314. Bei einem Beispiel wird das zu bearbeitende Bild 302 von dem Bildgaleriemodul 142 bezogen und kann Teil einer Bilderbibliothek eines Nutzers, die einer Bildbearbeitungsanwendung zugeordnet ist, sein. Das Füllmaterial kann in einem Bild beinhaltet sein, das von dem Bildsuchmodul 150, aus dem zu bearbeitenden Bild 302, aus einem von dem Bildgaleriemodul 142 verwalteten Bild oder aus Kombinationen hieraus bezogen wird.
-
Der geführte Nutzerdialog 304 beinhaltet einen Dialog zwischen einer Vorrichtung und einem Nutzer (beispielsweise zwischen einer der Rechenvorrichtungen 104 und dem Nutzer 102 in 1) und ist ein Beispiel für den Nutzerdialog 108 von 1. Darüber hinaus kann der geführte Nutzerdialog 304 von dem Dialogmodul 144 in Kooperation mit dem Sprachmodul 148, wie vorstehend beschrieben worden ist, geführt werden. Darüber hinaus ist das angeglichene Bild 314 ein Beispiel für das angeglichene Bild 112 von 1, und es kann das angeglichene Bild 314 von dem Angleichungsmodul 154 von 1 generiert werden. Die Objektmaske 306 und die verfeinerte Maske 308 sind Beispiele für Masken, die von dem Erfassungsmodul 146 generiert werden.
-
Bei dem Beispiel von 3 beinhaltet der geführte Nutzerdialog 304 die von der Vorrichtung gestellte Frage „Hallo, möchtest Du etwas in dem Bild entfernen oder ersetzen?“. Zusätzlich oder alternativ kann die Vorrichtung um eine beliebige geeignete Bearbeitungsfunktion, also beispielsweise um das Bearbeiten, Duplizieren, Hinzufügen oder Intransparentmachen eines Objektes, bitten. Ein Nutzer reagiert auf die Frage mit der Bearbeitungsanfrage „Könntest Du bitte die Frau vorne im Bild entfernen?“.
-
Das Erfassungsmodul 146 ermittelt Pixel des zu bearbeitenden Bildes 302, die „der Frau vorne im Bild“ entsprechen. Da das Erfassungsmodul 146 über semantisches Verständnis des Bildes verfügt, ist es dazu fähig, genau zu bestimmen, welche Frau in dem Bild die Frau vorne im Bild ist. Entsprechend generiert das Erfassungsmodul 146 die Objektmaske 306 für das Objekt „Frau vorne im Bild“. Die Objektmaske identifiziert einen groben Satz von Pixeln, der dem Objekt entspricht, ohne Content des Bildes einzuschließen. Pixel einer Objektmaske können beispielsweise binäre Farben sein, die eine Einschließung in die Objektmaske oder eine Ausschließung aus dieser angeben. Bei der exemplarischen Objektmaske 306 sind weiße Pixel in die Objektmaske eingeschlossen, während schwarze Pixel aus der Objektmaske ausgeschlossen sind.
-
Auf Grundlage der Objektmaske 306 generiert das Erfassungsmodul 146 die verfeinerte Maske 308. Eine verfeinerte Maske kann aus einer Objektmaske generiert werden, indem die Objektmaske erweitert wird, um einen Bereich zu schaffen, der vom Rand der Objektmaske begrenzt wird. Die Rand zwischen Weiß und Schwarz in der Objektmaske 306 kann beispielsweise hin zum Inneren der weißen Pixel erweitert werden, sodass ein Bereich konstanter Breite gebildet wird, der vom Rand begrenzt wird (beispielsweise ein innerer Bereich der Objektmaske). Innerhalb dieses Bereiches oder innerhalb eines beliebigen geeigneten Bereiches wird der Hintergrund des Bildes weiter vom Vordergrund des Bildes getrennt, und zwar beispielsweise unter Einsatz eines neuronalen Netzwerkes, das dafür trainiert ist, Hintergründe von Vordergründen in einem Bereich einer Objektmaske zu trennen, um die Objektmaske zu verfeinern. Durch weiteres Trennen des Hintergrundes vom Vordergrund in einem Bereich der Objektmaske 306 wird die verfeinerte Maske 308 generiert, die Pixel, die das Objekt (beispielsweise die Frau vorne im Bild) darstellen, genauer als die Objektmaske 306 definiert.
-
Die verfeinerte Maske 308 und das Füllmaterial 310 werden von dem Zusammenstellungsmodul 152 zum Generieren des zusammengestellten Bildes 312 genutzt. In dem zusammengestellten Bild 312 ist der Content der Pixel, die dem Objekt (beispielsweise der Frau vorne im Bild) entsprechen, entfernt worden. Zum Füllen eines Loches, das durch Entfernen von Content erzeugt wird, in dem Bild ist das Füllmaterial 310 zu den Pixeln, die dem Objekt in dem zusammengestellten Bild 312 entsprechen, also beispielsweise zu den Pixeln, die der verfeinerten Maske 308 zugeordnet sind, hinzugefügt worden. Das Zusammenstellen des Füllmaterials kann ein Durchführen einer Hintergrundbereinigung beinhalten, bei der in einem Bereich, so beispielsweise in dem vorbeschriebenen Bereich, der zur Schaffung der verfeinerten Maske 308 aus der Objektmaske 306 genutzt wird, Beiträge zu Pixeln eines Hintergrundes des Bildes aus den Pixeln entfernt werden. Daher werden in dem zusammengestellten Bild 312 Halos verringert.
-
Einige Zusammenstellungsartefakte sind jedoch gegebenenfalls weiterhin in dem zusammengestellten Bild 312 vorhanden. Bei dem Beispiel von 3 entdeckt ein aufmerksamer Beobachter gegebenenfalls den Umriss des hinzugefügten Füllmaterials in dem zusammengestellten Bild 312. Als Folge dessen generiert das Angleichungsmodul 154 das angeglichene Bild 314. Das angeglichene Bild 314 wird dadurch erzeugt, dass das zusammengestellte Bild 312 angeglichen wird, damit das Bild natürlich wirkt und Artefakte der Objektentfemungsaufgabe entfernt werden. Genutzt worden ist bei dem Beispiel von 3 ein neuronales Netzwerk, das insbesondere dafür trainiert ist, Objekte, die Personen entsprechen, anzugleichen, um Artefakte der Objektentfernung in einem Ausmaß zu entfernen, dass sie die meisten Beobachter nicht mehr entdecken können.
-
Nach erfolgter Betrachtung exemplarischer Flussdiagramme der Bilder folgt nunmehr eine Diskussion eines exemplarischen Systems, das zum Entfernen und Ersetzen von Objekten in einem zu bearbeitenden Bild nutzbar ist.
-
Exemplarisches Bildnachbearbeitungssystem
-
4 zeigt ein exemplarisches System 400, das zum Entfernen und Ersetzen von Objekten in einem zu bearbeitenden Bild entsprechend einem oder mehreren Aspekten der vorliegenden Offenbarung nutzbar ist. Bei dieser Implementierung beinhaltet das System 400 die Module der Bildnachbearbeitungsanwendung 120 aus der Beschreibung anhand 1, also beispielsweise das Dialogmodul 144, das Erfassungsmodul 146, das Sprachmodul 148, das Bildsuchmodul 150, das Zusammenstellungsmodul 152, das Angleichungsmodul 154 und das Anzeigemodul 156. Das System 400 ist ein Beispiel für das Bildnachbearbeitungssystem 110, das unter Nutzung der Module der Bildnachbearbeitungsanwendung 120 aufgebaut sein kann. So können beispielsweise Signale neudefiniert werden, und es können Module modifiziert, kombiniert, unterteilt, hinzugefügt oder entfernt werden, um ein modifiziertes System zu bilden, ohne dass die Funktionalität des Systems 400 geändert würde. Entsprechend werden derartige modifizierte Systeme als innerhalb des Umfangs der Offenbarung betrachtet.
-
Des Weiteren ist das System 400 der Einfachheit halber auf die Module der Bildnachbearbeitungsanwendung 120 und die Beschreibung von einigen ihrer wechselseitigen Verbindungen beschränkt. Das System 400 kann indes beispielsweise beliebige geeignete Signale und Kommunikationen zwischen Modulen, die der Einfachheit halber weggelassen sind, beinhalten. Derartige Signale können Systemuhren bzw. Systemtakte, Zähler, Bildangaben, Objektangaben, Rücksetzungssignale und dergleichen mehr beinhalten. Bei einem Beispiel kann das System 400 automatisch und ohne Nutzereingriff arbeiten, sobald ein geführter Nutzerdialog beendet ist. Darüber hinaus kann das System 400 in Echtzeit (also beispielsweise ohne eine für den Nutzer wahrnehmbare Verzögerung, sobald der Nutzerdialog beendet ist) arbeiten. Entsprechend können Signale von den Modulen des Systems 400 berechnet und zwischen den Modulen des Systems 400 ohne merkliche Verzögerung kommuniziert werden, wodurch wenigstens ein angeglichenes Bild ohne eine für den Nutzer wahrnehmbare Verzögerung generiert und präsentiert werden kann. Das System 400 kann beispielsweise Bilder mit Füllmaterial oder Ersetzungsmaterial und generierte angeglichene Bilder während eines geführten Nutzerdialogs auf Grundlage von Parametern, die aus dem geführten Nutzerdialog extrahiert werden, vorsorglich beziehen, damit wenigstens ein angeglichenes Bild während oder unmittelbar nach dem geführten Nutzerdialog präsentiert werden kann. Werden mehrere angeglichene Bilder generiert, so kann das System 400 neugenerierte angeglichene Bilder hinzufügen, um angeglichene Bilder in einer Nutzerschnittstelle zu präsentieren.
-
Darüber hinaus kann das System 400 auf einer beliebigen geeigneten Vorrichtung oder solchen Vorrichtungen implementiert sein. Bei einem Beispiel ist das System 400 auf einer Rechenvorrichtung (beispielsweise auf einer der Rechenvorrichtungen 104 von 1) implementiert. Bei einem weiteren Beispiel ist das System 400 auf mehr als einer Rechenvorrichtung implementiert. Teile des Systems 400 können beispielsweise durch eine erste Rechenvorrichtung, so beispielsweise die Rechenvorrichtung 104-1 von 1, implementiert sein, während andere Teile des Systems 400 durch eine zusätzliche Rechenvorrichtung oder solche Vorrichtungen, so beispielsweise die Rechenvorrichtung 104-2, implementiert sein können. Bei einem Beispiel implementiert ein Server, so beispielsweise der Server 116 in 1, Teile des Systems 400. Der Server kann remote sein, da er beispielsweise nicht am gleichen Ort wie die erste Rechenvorrichtung befindlich ist. Der Server kann dafür konfiguriert sein, Signale des Systems 400 von einer Rechenvorrichtung (beispielsweise von einer oder mehreren der Rechenvorrichtungen 104) zu empfangen, die empfangenen Signale beispielsweise mit dem Bildunterstützungssystem 118 zu verarbeiten und die Ergebnisse der Verarbeitung zurück an die Rechenvorrichtung zu übertragen. Das Bildunterstützungssystem 118 des Servers 116 von 1 kann daher das System 400 beinhalten.
-
Zusätzlich oder alternativ können Teile des Systems 400 durch eine zusätzliche Rechenvorrichtung, die am gleichen Ort wie die erste Rechenvorrichtung befindlich ist, implementiert sein. Eine der Rechenvorrichtungen 104 kann beispielsweise eine erste Rechenvorrichtung sein, während eine weitere der Rechenvorrichtungen 104 eine zusätzliche am gleichen Ort befindliche Rechenvorrichtung sein kann. Die erste Rechenvorrichtung und die zusätzliche Rechenvorrichtung können von einem oder mehreren Nutzern betrieben werden. Daher versorgt das System 400 mehrere Nutzer innerhalb einer Umgebung zum gemeinsamen Nutzen bzw. Teilen (Sharing) von Daten, die in dem System 400 beinhaltet sind. Ein zu bearbeitendes Bild kann beispielsweise von einer ersten Rechenvorrichtung, die von einem ersten Nutzer betrieben wird, bezogen werden und an eine weitere Rechenvorrichtung, die von einem zweiten Nutzer betrieben wird, gesendet werden. Der zweite Nutzer kann sodann ein Bild mit Füllmaterial für ein zu ersetzendes Objekt in dem zu bearbeitenden Bild (beispielsweise Hintergrund) auswählen und das Bild mit dem Füllmaterial zurück an den ersten Nutzer und die erste Rechenvorrichtung senden. Die erste Rechenvorrichtung kann das Bild mit dem Füllmaterial, das von dem zweiten Nutzer ausgewählt worden ist, sodann nutzen, um ein angeglichenes Bild zu bilden. Das angeglichene Bild kann sodann mit anderen Nutzern, so beispielsweise dem zweiten Nutzer, geteilt werden.
-
Das Dialogmodul 144 führt einen Nutzerdialog (beispielsweise einen geführten Nutzerdialog). Bei einem Beispiel führt das Dialogmodul 144 den Nutzerdialog im Stile eines Gespräches aus Fragen und Antworten. Auf Grundlage des geführten Nutzerdialogs stellt das Dialogmodul 144 eine Anfrage (beispielsweise eine Bearbeitungsanfrage) für das Sprachmodul 148 bereit. Eine Anfrage kann eine Aufforderung bezüglich einer Funktion zum Bearbeiten eines Bildes beinhalten, so beispielsweise eine Entfernungsaufforderung, eine Ersetzungsaufforderung, eine Bewegungsaufforderung, eine Duplizierungsaufforderung, eine Hinzufügungsaufforderung und dergleichen mehr. Eine Anfrage kann von dem Dialogmodul 144 zu einer beliebigen geeigneten Zeit, so beispielsweise während eines geführten Nutzerdialogs, nach einem geführten Nutzerdialog oder sowohl während wie auch nach einem geführten Nutzerdialog, bereitgestellt werden. Daher kann eine Anfrage, die von dem Dialogmodul 144 bereitgestellt wird, eine beliebige Anzahl von Anfragen beinhalten, die in einem beliebigen geeigneten Format vorliegen können. Beinhalten kann eine von dem Dialogmodul 144 bereitgestellte Anfrage beispielsweise eine oder mehrere Aufzeichnungen eines geführten Nutzerdialogs, ein Transskript eines geführten Nutzerdialogs, eine Datenstruktur mit Feldern, die mit Worten und Angaben von Worten in einem geführten Nutzerdialog besiedelt werden, Kombinationen hieraus und dergleichen mehr.
-
Des Weiteren empfängt das Dialogmodul 144 Dialogdaten von dem Sprachmodul 148. Die von dem Sprachmodul 148 empfangenen Dialogdaten können im Zusammenhang mit einem geführten Nutzerdialog stehende beliebige geeignete Daten sein, die auf Grundlage einer von dem Dialogmodul 144 bereitgestellten Anfrage generiert werden. Beinhalten können die Dialogdaten beispielsweise Angaben von Fragen, die in einem geführten Nutzerdialog gestellt werden sollen (beispielsweise auf Grundlage einer Datenbanksuche, die von dem Bildsuchmodul 150 durchgeführt wird, um die Verfügbarkeit von Bildern im Zusammenhang mit dem geführten Nutzerdialog während des geführten Nutzerdialogs zu bestimmen), Aufforderungen zur Bestätigung (beispielsweise zur Bestätigung der Auswahl eines Objektes in einem Bild) und dergleichen mehr. Daher können das Dialogmodul 144, das Sprachmodul 148 und das Bildsuchmodul 150 während eines geführten Nutzerdialogs zusammenarbeiten, um den geführten Nutzerdialog zu führen.
-
Das Sprachmodul 148 empfängt eine Anfrage von dem Dialogmodul 144 und verarbeitet die Anfrage zum Bestimmen von Parametern der Anfrage, darunter, welche Bearbeitungsfunktionsaufforderung (beispielsweise Entfernungsaufforderung, Ersetzungsaufforderung, Bewegungsaufforderung, Duplizierungsaufforderung, Hinzufügungsaufforderung und dergleichen) in der Anfrage beinhaltet ist. Bei einem Beispiel bestimmt das Sprachmodul 148, ob eine Anfrage von dem Dialogmodul 144 eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet.
-
Des Weiteren identifiziert das Sprachmodul 148 ein oder mehrere Objekte auf Grundlage einer von dem Dialogmodul 144 empfangenen Anfrage. Sein kann ein von dem Sprachmodul 148 identifiziertes Objekt ein zu ersetzendes Objekt, ein zu entfernendes Objekt, ein zu duplizierendes Objekt, ein zu bewegendes Objekt, ein zu einem Bild hinzuzufügendes Objekt, ein Bild zur Ersetzung eines Objektes in einem zu bearbeitenden Bild, Kombinationen hieraus und dergleichen mehr. Beispiele für von dem Sprachmodul 148 identifizierte Objekte beinhalten belebte und unbelebte Objekte, einen Hintergrund, Himmel, Artefakte des Abbildungsprozesses (beispielsweise Spiegelreflexionen, Pixel, Linsenverzerrung, Flecken und dergleichen mehr) und dergleichen mehr.
-
Das Sprachmodul 148 stellt aus einer Anfrage identifizierte Objekte für das Erfassungsmodul 146 bereit, darunter Angaben von Bearbeitungsfunktionsaufforderungen, die in der Anfrage beinhaltet sind oder durch diese nahegelegt werden (beispielsweise eine Angabe dessen, ob die Anfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet) und dies auch für das Bildsuchmodul 150 und das Zusammenstellungsmodul 152.
-
Das Erfassungsmodul 146 empfängt ein zu bearbeitendes Bild, so beispielsweise ein Bild, das von einem Nutzer bereitgestellt und in den Speicher 126 in dem Bildnachbearbeitungssystem 110 von 1 geladen wird. Das Erfassungsmodul 146 empfängt zudem aus einer Anfrage identifizierte Objekte von dem Sprachmodul 148. Das Erfassungsmodul 146 identifiziert und ermittelt Pixel eines zu bearbeitenden Bildes, die von dem Sprachmodul 148 identifizierten Objekten entsprechen. Das Erfassungsmodul 146 kann Pixel, die Objekten entsprechen, auf beliebige geeignete Weise ermitteln. Bei einem Beispiel generiert das Erfassungsmodul 146 eine oder mehrere Masken für von dem Sprachmodul 148 identifizierte Objekte. Eine Maske kann die Form eines Objektes beschreiben, ohne Content aus dem zu bearbeitenden Bild einzuschließen. Das Erfassungsmodul 146 kann eine Objektmaske für ein Objekt generieren und aus der Objektmaske eine verfeinerte Maske generieren, indem es die Objektmaske erweitert, um einen Bereich zu schaffen, der vom Rand der Objektmaske begrenzt wird und der einen Hintergrund von einem Vordergrund für Pixel in dem Bereich trennt.
-
Das Erfassungsmodul 146 kann zum Identifizieren von Pixeln eines Bildes, die einem Objekt entsprechen, ein neuronales Netzwerk nutzen, das insbesondere für den Typ des zu identifizierenden Objektes trainiert worden ist. Beim Identifizieren eines Hundes in einem Bild kann das Erfassungsmodul 146 daher unter mehreren verfügbaren neuronalen Netzwerken ein neuronales Netzwerk auswählen, das zum Identifizieren von Hunden in Bildern unter Nutzung von Trainingsbildern, die verschiedene Hunderassen enthalten, trainiert worden ist.
-
Zusätzlich oder alternativ kann das Erfassungsmodul 146 Pixel eines Bildes ermitteln, die einem von dem Sprachmodul 148 identifizierten Objekt entsprechen, indem es einen Satz von inversen Pixeln, die Pixel, die dem Objekt entsprechen, nicht beinhalten, bestimmt und die Pixel, die dem Objekt entsprechen, sodann aus dem Satz von inversen Pixeln bestimmt.
-
Des Weiteren verfügt das Erfassungsmodul 146 über semantisches Verständnis eines zu bearbeitenden Bildes und ist daher fähig, zwischen ähnlichen Objekten in einem Bild zu unterscheiden. Bei einem Bild, das beispielsweise mehrere Regale beinhaltet, ist das Erfassungsmodul 146 fähig, aus einer Objektbeschreibung mit der Angabe „das Buchregal in der Ecke“ ein Eckregal ausfindig zu machen.
-
Pixel, die Objekten entsprechen, die von dem Erfassungsmodul 146 ermittelt werden, werden für das Zusammenstellungsmodul 152 und das Bildsuchmodul 150 bereitgestellt. Segmentierte Pixel, die von dem Erfassungsmodul 146 bereitgestellt werden, können in einem beliebigen geeigneten Format sein und beliebige geeignete Daten beinhalten, so beispielsweise Masken, Objektangaben (beispielsweise Nummern zum Bezeichnen von Objekten bei mehreren Objekten), Ersetzungs- oder Entfernungsangaben, eine Kopie des zu bearbeitenden Bildes und dergleichen mehr.
-
Das Bildsuchmodul 150 empfängt von dem Sprachmodul 148 Daten über eine Bearbeitungsanfrage, die eine Angabe dahingehend beinhalten, ob die Anfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet. Die von dem Sprachmodul 148 empfangenen Daten können beliebige geeignete Daten im Zusammenhang mit einer Bearbeitungsanfrage beinhalten, so beispielsweise Beschreibungen von Objekten, die aus einer Anfrage identifiziert werden, und Synonyme von Objekten, die von dem Bildsuchmodul 150 genutzt werden können, um eine Anfragezeichenfolge für eine Bildsuche zu erstellen (beispielsweise zum Durchsuchen einer Vorratsbilderdatenbank, für eine Onlinesuche, für eine Durchsuchung einer Rechenvorrichtung und dergleichen mehr).
-
Das Bildsuchmodul 150 empfängt zudem segmentierte Pixel von dem Erfassungsmodul 146. Bei einem Beispiel erstellt das Bildsuchmodul eine Anfragezeichenfolge für eine Bildsuche, indem es Content der segmentierten Pixel, die von dem Erfassungsmodul 146 bereitgestellt werden, analysiert. Das Bildsuchmodul 150 kann die segmentierten Pixel beispielsweise dafür analysieren, eine Anfragezeichenfolge durch Aufnahme von Deskriptoren der segmentierten Pixel einzuengen und so ein besser abgestimmtes Füllmaterial oder Ersetzungsmaterial zu beziehen. Bei einem Beispiel kann das Bildsuchmodul 150 segmentierte Pixel von dem Erfassungsmodul 146, die Gras eines Rasens beinhalten, analysieren und bestimmen, dass der Typ des Grases des Rasens Wiesenrispengras (bluegrass) ist. Infolgedessen kann das Erfassungsmodul 146 eine Suchzeichenfolge aus Kombinationen der Worte „Rasen“, „Gras“ und „Wiesenrispengras“ erstellen.
-
Das Bildsuchmodul 150 bezieht ein oder mehrere Bilder, die Füllmaterial oder Ersetzungsmaterial beinhalten. Das Bildsuchmodul 150 bezieht Bilder aus beliebigen geeigneten Quellen, so beispielsweise aus einer Bilderdatenbank, einer Bildergalerie des Nutzers, aus Dateien auf einer Rechenvorrichtung und dergleichen mehr, wie vorstehend beschrieben worden ist.
-
Bei einem Beispiel bezieht das Bildsuchmodul 150 Bilder auf Grundlage einer Angabe dessen, ob eine Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet. In Reaktion auf eine Bestimmung, dass eine Bearbeitungsanfrage eine Ersetzungsaufforderung beinhaltet, kann das Bildsuchmodul 150 beispielsweise ein oder mehrere Bilder beziehen, die Ersetzungsmaterial beinhalten, das als ähnlich zu Pixeln erkannt worden ist, die einem Objekt entsprechen, das von dem Sprachmodul 148 identifiziert worden ist, und die in einem zu bearbeitenden Bild entsprechend der Ersetzungsaufforderung ersetzt werden sollen.
-
Zusätzlich oder alternativ kann das Bildsuchmodul 150 in Reaktion auf eine Bestimmung, dass eine Bearbeitungsanfrage eine Entfernungsaufforderung beinhaltet, ein oder mehrere Bilder beziehen, die Füllmaterial beinhalten, das als ähnlich zu anderen Pixeln im Vergleich zu den Pixeln bestimmt worden ist, die einem Objekt entsprechen, das von dem Sprachmodul 148 identifiziert wird, und die in einem zu bearbeitenden Bild entsprechend der Entfernungsaufforderung entfernt werden sollen. Die anderen Pixel können zu einem Hintergrund des Bildes, aus dem ein Objekt (beispielsweise eine Person) entfernt worden ist, ähnlich sein.
-
Das Bildsuchmodul 150 stellt Bilder mit Füllmaterial, Ersetzungsmaterial oder sowohl mit Füllmaterial wie auch mit Ersetzungsmaterial für das Zusammenstellungsmodul 152 bereit.
-
Das Zusammenstellungsmodul 152 empfängt segmentierte Pixel von dem Erfassungsmodul 146 (die beispielsweise das zu bearbeitende Bild beinhalten), eine Angabe dessen, ob eine Anfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet, von dem Sprachmodul 148, beliebige geeignete Daten von dem Sprachmodul 148, so beispielsweise Beschreibungen von Objekten, die aus einer Anfrage identifiziert werden, und Bilder, die von dem Bildsuchmodul 150 bezogen werden, und generiert ein oder mehrere zusammengestellte Bilder, um eine Bearbeitungsanfrage zu erledigen, die aus dem geführten Nutzerdialog, der von dem Dialogmodul 144 geführt wird, bezogen wird.
-
Bei einem Beispiel generiert das Zusammenstellungsmodul 152 ein zusammengestelltes Bild für jedes von dem Bildsuchmodul 150 bereitgestellte Bild, indem es Füllmaterial oder Ersetzungsmaterial aus einem von dem Bildsuchmodul 150 bereitgestellten Bild mit einem von dem Erfassungsmodul 146 bereitgestellten zu bearbeitenden Bild zusammenstellt. Bei einer Entfernungsaufforderung beinhaltet das Zusammenstellen das Entfernen von Content segmentierter Pixel des zu bearbeiteten Bildes entsprechend einem zu entfernenden Objekt. Das Zusammenstellungsmodul 152 fügt sodann Content des Füllmaterials zu den Pixeln, die dem zu entfernenden Objekt entsprechen, hinzu. Bei einer Ersetzungsaufforderung ersetzt das Zusammenstellungsmodul 152 Content von Pixeln des zu bearbeiteten Bildes entsprechend einem Objekt, das durch Ersetzungsmaterial ersetzt werden soll.
-
Das Zusammenstellungsmodul 152 kann Füllmaterial oder Ersetzungsmaterial auf beliebige Weise verarbeiten, um es mit einem zu bearbeitenden Bild zusammenzusetzen. Das Zusammenstellungsmodul 152 kann Füllmaterial oder Ersetzungsmaterial aus einem von dem Bildsuchmodul 150 bezogenen Bild extrahieren, das Material filtern (beispielsweise Farbe, Helligkeit und Kontrast anpassen, einen Filter einsetzen und dergleichen), die Größe des Materials ändern (beispielsweise zwischen Pixeln des Materials interpolieren, Pixel des Materials dezimieren oder beides, das Material strecken oder stauchen), das Material drehen, das Material beschneiden, das Material mit sich selbst oder mit anderem Füll- oder Ersetzungsmaterial zusammenstellen und dergleichen mehr.
-
Das Zusammenstellungsmodul 152 stellt ein oder mehrere zusammengestellte Bilder für das Angleichungsmodul 154 bereit. Das Angleichungsmodul 154 empfängt die zusammengestellten Bilder von dem Zusammenstellungsmodul 152 und generiert angeglichene Bilder aus den zusammengestellten Bildern. Obwohl dies in 4 nicht gezeigt ist, kann das Angleichungsmodul 154 beliebige andere geeignete Daten, die von dem System 400 generiert oder genutzt werden, empfangen, so beispielsweise Identifizierer von Objekten von dem Sprachmodul 148, segmentierte Pixel von dem Erfassungsmodul 146 und dergleichen mehr.
-
Das Angleichungsmodul 154 gleicht zusammengestellte Pixel, die von dem Zusammenstellungsmodul 152 bereitgestellt werden, auf beliebige geeignete Weise an. Bei einem Beispiel erzeugt das Angleichungsmodul 154 ein angeglichenes Bild für jedes zusammengestellte Bild, das von dem Zusammenstellungsmodul 152 empfangen wird, durch Entfernen von Zusammenstellungsartefakten, beispielsweise von unpassendem Licht, in den zusammengestellten Bildern, Anpassen oder Entfernen von Schatten, Einmischen von Ersetzungs- oder Füllmaterial, Durchführen einer Hintergrundbereinigung und dergleichen mehr. Zusätzlich oder alternativ kann das Angleichungsmodul 154 ein zusammengestelltes Bild mittels eines neuronalen Netzwerkes angleichen, das insbesondere für den Typ von Objekt trainiert ist, das aus einem zu bearbeitenden Bild, einem Hintergrund des zu bearbeitenden Bildes oder aus Kombinationen hieraus entfernt oder darin ersetzt ist, um das zusammengestellte Bild zu bilden. Nutzen kann das Angleichungsmodul 154 beispielsweise ein neuronales Netzwerk, das darauf trainiert ist, Personen in einer Strandszene anzugleichen, beim Entfernen oder Ersetzen einer Person in einem Bild mit einer Strandszene. Hierbei ist die Person ein zu ersetzendes oder zu entfernendes Objekt, und die Strandszene ist ein Hintergrund des zu bearbeiteten Bildes. Die von dem Angleichungsmodul 154 generierten angeglichenen Bilder werden für das Anzeigemodul 156 bereitgestellt.
-
Das Anzeigemodul 156 empfängt die angeglichenen Bilder von dem Angleichungsmodul 154. Zusätzlich oder alternativ empfängt das Anzeigemodul 156 beliebige geeignete Bilder, die von dem System 400 genutzt oder generiert werden, so beispielsweise das zu bearbeitende Bild, das von dem Erfassungsmodul 146 bezogen wird, Bilder mit Füllmaterial oder Ersetzungsmaterial, die von dem Bildsuchmodul bezogen werden, Zwischenbilder (beispielsweise ein Bild, das von dem Erfassungsmodul 146 generiert wird und eine Angabe beinhaltet, so beispielsweise ein Lasso, ein Einschließungskästchen, eine Schattierung, eine Musterung und dergleichen mehr eines Objektes in dem Bild gemäß Angabe durch das Sprachmodul 148) und dergleichen mehr. Das Anzeigemodul 156 präsentiert Bilder in einer Nutzerschnittstelle (nachstehend noch detaillierter beschrieben).
-
Durch Präsentieren eines beliebigen geeigneten Bildes, einer Maske, eines Objektes, von Pixeln, einer Anfrage und dergleichen kann das Anzeigemodul 156 ein beliebiges Ergebnis des Systems 400 (beispielsweise Zwischen- oder Endergebnisse) präsentieren und einen Nutzer zur Rückmeldung auffordern. Das Anzeigemodul 156 kann beispielsweise eine Maske anzeigen, die von dem Erfassungsmodul 146 generiert wird, und einen Nutzer auffordern, die Maske zu berichtigen (beispielsweise den Rand der Maske zu bewegen), oder zu bestätigen, dass die Maske richtig ist (also beispielsweise so ist, wie sie der Nutzer wünscht). Zusätzlich oder alternativ kann das Anzeigemodul 156 von dem System 400 genutzte Parameter präsentieren, so beispielsweise Parameter eines Angleichungsprozesses, die von dem Angleichungsmodul 154 genutzt werden, wodurch ermöglicht wird, dass ein Nutzer die Parameter anpasst. Ein Nutzer kann beispielsweise die Helligkeit eines Helligkeitsparameters, der beim Erzeugen eines angeglichenen Bildes genutzt wird, anpassen. Bei einem Beispiel kann der Nutzer den Rand einer Hintergrundsegmentierung, die von dem Erfassungsmodul 146 generiert wird, anpassen, und zwar beispielsweise durch Bewegen einer Wasserlinie, die Strand und Meer trennt, wodurch die Hintergrundszene des Bildes definiert wird.
-
Des Weiteren präsentiert das Anzeigemodul 156 angeglichene Bilder von dem Angleichungsmodul 154 in einer Reihenfolge entsprechend einem Kennwert, der den angeglichenen Bildern zugewiesen ist. Der Kennwert kann auf beliebige geeignete Weise zugewiesen werden, so beispielsweise von dem Zusammenstellungsmodul 152 oder dem Angleichungsmodul 154, und zwar auf Grundlage des Zusammenstellens, Angleichens oder von beidem. Bei einem Beispiel beruht der Kennwert auf der Menge der Verarbeitungsressourcen (beispielsweise der Anzahl von Bearbeitungsfunktionen, der Anzahl von Prozessoranweisungen, der Anzahl von Taktzyklen, der Anzahl von Iterationen eines Algorithmus, Kombinationen hieraus und dergleichen), die verbraucht oder aufgewendet werden, damit das Zusammenstellungsmodul 152 oder das Angleichungsmodul 154 das Zusammenstellen beziehungsweise Angleichen durchführen. Die Kennwerte können für das Zusammenstellen und das Angleichen getrennt generiert werden und können getrennt oder in Kombination zum Generieren einer Reihenfolge genutzt werden, die von dem Anzeigemodul 156 zum Präsentieren der angeglichenen Bilder genutzt wird.
-
Das System 400 bietet eine Verbesserung gegenüber Systemen, die ein Objekt in einem zu bearbeitenden Bild ohne den Vorteil eines geführten Nutzerdialogs manuell entfernen oder ersetzen. Das System 400 generiert mehrere Lösungen, die eine Ersetzungsaufforderung oder eine Entfernungsaufforderung erledigen, automatisch und ohne die Notwendigkeit eines hohen Trainingsaufwandes für einen Nutzer. Sogar Nutzer, die Neulinge sind, können natürlich wirkende angeglichene Bilder generieren, die ein Objekt in einem Bild entfernen oder ersetzen, ohne auf eine weitere Partei, so beispielsweise einen Online-Fotobearbeitungsdienst oder einen Freund, der sich mit der Nutzung von Adobe Photoshop® wie ein Experte auskennt, zurückzugreifen. Ein Nutzer muss lediglich ein zu bearbeitendes Bild bereitstellen und an einem geführten Dialog mit einer Rechenvorrichtung teilnehmen, um angeglichene Bilder zu beziehen, die ein Objekt in dem Bild entfernen oder ersetzen. Entsprechend kann ein Nutzer viele natürlich wirkende angeglichene Bilder schnell, kostengünstig und mit geringem Aufwand und geringer Verzögerung im Vergleich zu Systemen generieren, die ein Objekt in einem zu bearbeitenden Bild ohne den Vorteil eines geführten Nutzerdialogs manuell entfernen oder ersetzen. Des Weiteren ist das System 400 dadurch, dass es eine multimodale Nutzereingabe während eines geführten Nutzerdialogs empfängt, im Vergleich zu anderen Systemen zuverlässig (indem es beispielsweise die Befehle eines Nutzers richtig deutet, wenn andere Systeme scheitern), wodurch ein Nutzer des Systems 400 weniger frustriert als ein Nutzer anderer Systeme ist, die keine multimodale Nutzereingabe während eines geführten Nutzerdialogs empfangen.
-
Nach erfolgter Betrachtung eines exemplarischen Systems 400 folgt nunmehr eine Diskussion einer exemplarischen Nutzerschnittstelle entsprechend einem oder mehreren Aspekten der Offenbarung.
-
Exemplarische Nutzerschnittstelle
-
5 zeigt eine exemplarische Nutzerschnittstelle 500 entsprechend einem oder mehreren Aspekten der Offenbarung. In 5 beinhaltet die exemplarische Nutzerschnittstelle 500 vier Datenfelder, die nachstehend noch beschrieben werden. Die Nutzerschnittstelle 500 kann jedoch eine beliebige Anzahl und einen beliebigen Typ von Datenfeldern zur Anzeige von Daten, Bildern und dergleichen beinhalten. Die Nutzerschnittstelle 500 ist ein Beispiel für eine Nutzerschnittstelle, die von dem System 400 von 4 generiert und auf der Anzeige 122 von 1 angezeigt wird. Daher kann eine Vorrichtung, die die Nutzerschnittstelle 500 anzeigt, eine beliebige geeignete Vorrichtung, so beispielsweise eine der Vorrichtungen 104 in 1, sein.
-
Die Nutzerschnittstelle 500 beinhaltet ein Anfragefeld 502, das eine Darstellung 504 eines geführten Nutzerdialogs zwischen einer Vorrichtung (beispielsweise einer der Vorrichtungen 104 von 1) und einem Nutzer (beispielsweise dem Nutzer 102 von 1) beinhaltet. Der geführte Nutzerdialog, der von der Darstellung 504 angegeben wird, ist ein Beispiel für den Nutzerdialog 108 von 1.
-
Die Nutzerschnittstelle 500 beinhaltet zudem ein Zwischenergebnisfeld 506. Das Zwischenergebnisfeld 506 beinhaltet Steuerungen bzw. Regelungen 508, die dafür geeignet sind, ein in dem Zwischenergebnisfeld 506 angezeigtes Bild zu steuern bzw. zu regeln. Die Steuerungen bzw. Regelungen 508 können eine beliebige geeignete Steuerung bzw. Regelung beinhalten, so beispielsweise Anpasser für Helligkeit, Kontrast, Farbe, Auswahl von Filtern, Schattierung, Beschneidung, Überlagerung und dergleichen mehr. Beinhalten können die Steuerungen bzw. Regelungen 508 des Weiteren Steuerungen bzw. Regelungen für einen Nutzerdialog, so beispielsweise für die Lautstärke, die Sprache des in der Darstellung 504 eines geführten Nutzerdialogs angezeigten Textes, Stummschaltung, Ausmaß des Halls, Bandbreite eines Anti-Aliasing-Filters für Sprache des geführten Nutzerdialogs, Abtastrate und Datenbitbreite für den geführten Nutzerdialog und dergleichen mehr.
-
Das Zwischenergebnisfeld 506 kann beliebige geeignete Bilder anzeigen, so beispielsweise Zwischenbilder, zusammengestellte Bilder, angeglichene Bilder, Bilder mit Füllmaterial, Bilder mit Ersetzungsmaterial und dergleichen. Bei dem Beispiel von 5 zeigt das Zwischenergebnisfeld 506 ein Zwischenbild 511 an, das einen Hydrant und einen Hund sowie einen Hintergrund mit Sträuchern beinhaltet. Das Zwischenbild 510 ist ein Beispiel für ein Bild, das von dem Erfassungsmodul 146 in 1 und 2 generiert wird. Das Zwischenbild 510 beinhaltet eine Angabe 512 eines Objektes (bei diesem Beispiel einen Kandidaten für den Hydrant) in Reaktion auf den geführten Nutzerdialog der Darstellung 504.
-
Bei der Darstellung 504 fragt die Vorrichtung beispielsweise „Was möchtest Du entfernen?“ als Teil des geführten Nutzerdialogs, der bereits am Laufen sein kann. Daher ist „Was möchtest Du entfernen?“ gegebenenfalls nicht der Anfang des geführten Nutzerdialogs der Darstellung 504. Ein Nutzer reagiert mit „Entferne den Hydrant“. In Reaktion darauf, dass der Nutzer um Entfernung des Hydranten bittet, präsentiert die Nutzerschnittstelle 500 das Zwischenbild 510 in dem Zwischenergebnisfeld 506 und gibt ein Kandidatenobjekt für den Hydrant mit der Angabe 512 an. Die Angabe 512 kann eine beliebige geeignete Angabe sein, so beispielsweise ein Lasso, ein Kreis, eine Schattierung, eine Musterung, eine Maske, eine Überlagerung, ein Pfeil, ein daneben stehender Text und dergleichen mehr. Bei dem Beispiel von 5 beinhaltet die Angabe 512 einen gestrichelten Umriss, der den Hydrant zusammen mit dem Kopf des Hundes einschließt. Die Angabe 512 identifiziert den Hydrant also nicht richtig, da sie auch den Kopf des Hundes beinhaltet. Als Ergebnis der Präsentation des Zwischenbildes 510 mit der Angabe 512 und der Anfrage „Ist das der Hydrant?“ durch die Vorrichtung reagiert der Nutzer in dem geführten Nutzerdialog der Darstellung 504 mit „Nein, Du hast den Kopf des Hundes mit ausgewählt. Das ist der Hydrant.“
-
Die Nutzerschnittstelle 500 empfängt eine multimodale Nutzereingabe, die Sprache, die durch die Darstellung 504 angegeben ist (beispielsweise „Nein, Du hast den Kopf des Hundes mit ausgewählt. Dies ist der Hydrant.“) und zudem eine Auswahl mittels eines Werkzeuges in der Nutzerschnittstelle 500 beinhaltet. Bei dem Beispiel von 5 wählt der Nutzer die Angabe 512, die durch eine Handdarstellung 514 angegeben ist, aus (und zwar beispielsweise durch Zeigen mit der Maus und Klicken einer Maustaste). Der Nutzer bewegt die Angabe 512 zudem zum Anpassen des angegebenen Contents (beispielsweise durch Gedrückthalten einer Maustaste und Bewegen oder Anpassen der Angabe 512). Die Anpassung der Angabe 512 ist in 5 durch den Pfeil 516 gezeigt, damit der Nutzer die Angabe 512 anpassen kann, um den Hydrant einzuschließen, ohne jedoch den Kopf des Hundes einzuschließen, wodurch die Angabe 512 berichtigt wird. Eine beliebige geeignete Auswahl mittels eines Werkzeuges in der Nutzerschnittstelle 500 kann genutzt werden, um eine multimodale Nutzereingabe bereitzustellen, so beispielsweise durch nutzerseitiges Klicken auf die Mitte eines Objektes (beispielsweise Klicken in die Mitte des Hydranten in dem Zwischenbild 510), während das Sprechen (beispielsweise „Nein, Du hast den Kopf des Hundes mit ausgewählt. Das ist der Hydrant“ in dem geführten Nutzerdialog der Darstellung 504) eine multimodale Nutzereingabe darstellt. Durch Nutzung der multimodalen Eingabe kann anstelle dessen, dass ein Nutzer ein Objekt durch weniger effiziente Mittel auswählen muss, also beispielsweise durch Übermalen eines Objektes mit einem Werkzeugpinsel, ein Objekt in einem zu bearbeitenden Bild schnell und genau mit wenig Aufwand seitens des Nutzers identifiziert werden.
-
Wie weiterhin in 5 gezeigt ist, beinhaltet der geführte Nutzerdialog der Darstellung 504 die nutzerseitige Bearbeitungsanfrage „Mach den Hintergrund zu einer Bergszene“. Die Vorrichtung, die an dem geführten Nutzerdialog der Darstellung 504 beteiligt ist, nutzt ein Bildnachbearbeitungssystem (beispielsweise das Bildnachbearbeitungssystem 110 von 1 oder das System 400 von 4) und deutet die Bearbeitungsanfrage so, dass sie eine Ersetzungsaufforderung zum Ersetzen des Hintergrundes durch eine Bergszene beinhaltet. „Hintergrund“ ist beispielsweise ein zu ersetzendes Objekt, während „Bergszene“ ein Objekt zum Ersetzen des zu ersetzenden Objektes ist. Entsprechend beinhaltet die Nutzerschnittstelle 500 ein Bildfeld 518, das dafür konfiguriert ist, einen beliebigen geeigneten Typ von Bildern anzuzeigen, so beispielsweise Zwischenbilder, zusammengestellte Bilder, angeglichene Bilder, Bilder mit Füllmaterial, Bilder mit Ersetzungsmaterial und dergleichen. Bei dem Beispiel von 5 zeigt das Bildfeld 518 mehrere angeglichene Bilder 520 an, die jeweils den Hund des Zwischenbildes 510 beinhalten, wobei der Hydrant entfernt ist und der Hintergrund (beispielsweise die Sträucher) durch eine Bergszene ersetzt ist. Die Bergszenen der angeglichenen Bilder 520 beinhalten Füllmaterial, das aus beliebigen geeigneten Bildern bezogen wird, so beispielsweise aus Vorratsbildern, die aus einer Bilderdatenbank bezogen werden. Die angeglichenen Bilder 520 können unter Nutzung eine Bildlaufleiste (scrollbar) 522 des Bildfeldes 518 durchsucht und durchscrollt werden.
-
Durch nach oben und unten erfolgendes Verschieben einer Steuerung bzw. Regelung der Bildlaufleiste 522 werden die angeglichenen Bilder 520 in dem Bildfeld 518 beispielsweise nach oben bzw. unten gescrollt, sodass verschiedene Bilder in dem Bildfeld 518 präsentiert werden.
-
Ein Nutzer wählt eines der angeglichenen Bilder 520 in dem Bildfeld 518 aus. In 5 ist die Auswahl durch die Handdarstellung 524 angedeutet. Die Handdarstellung 524 gibt beispielsweise an, dass ein Nutzer eines der angeglichenen Bilder 520 in der unteren rechten Ecke entsprechend der Anzeige in dem Bildfeld 518 auswählt. Das ausgewählte Bild kann einer vom Nutzer bevorzugten Bergszene entsprechen.
-
Als Ergebnis dessen, dass der Nutzer ein Bild in dem Bildfeld 518 auswählt, wird ein Bild in dem Anzeigefeld 526 präsentiert. In Reaktion darauf, dass der Nutzer das eine der angeglichenen Bilder 520 beispielsweise in der unteren rechten Ecke entsprechend der Anzeige in dem Bildfeld 518 so, wie durch die Handdarstellung 524 angegeben ist, auswählt, wird das angeglichene Bild 528 in dem Anzeigefeld 526 angezeigt. Man beachte, dass das angeglichene Bild 528 in dem Anzeigefeld 526 dem ausgewählten Bild, das durch die Handdarstellung 524 (sie sind beispielsweise dasselbe Bild) angegeben ist, entspricht. Bei einem Beispiel wird das Anzeigefeld 526 in der Nutzerschnittstelle 500 in Reaktion auf eine Nutzerauswahl eines der angeglichenen Bilder 520, die in dem Bildfeld 518 angezeigt werden, angezeigt. Vor der Nutzerauswahl eines der angeglichenen Bilder 520, die in dem Bildfeld 518 angezeigt werden, wird das Anzeigefeld 526 bei einem Beispiel gegebenenfalls nicht in der Nutzerschnittstelle 500 angezeigt.
-
Des Weiteren beinhaltet das Anzeigefeld 526 Steuerungen bzw. Regelungen 530, die dafür geeignet sind, ein Bild, das in dem Anzeigefeld 526 angezeigt wird, zu steuern bzw. zu regeln. Die Steuerungen bzw. Regelungen 530 können eine beliebige geeignete Steuerung bzw. Regelung beinhalten, so beispielsweise Anpasser für Helligkeit, Kontrast, Farbe, Auswahl von Filtern, Schattierung, Beschneidung, Überlagerung, Bildspeicherung, Pixelanzahl in einem Bild, Seitenverhältnis und dergleichen mehr. Bei einem Beispiel beinhalten die Steuerungen bzw. Regelungen 530 eine Auswahl zum Exportieren eines angeglichenen Bildes, beispielsweise des angeglichenen Bildes 528, damit dieses an eine Rechenvorrichtung, so beispielsweise an eine der Rechenvorrichtungen 104 von 1, gesendet wird. Das angeglichene Bild 528 kann beispielsweise generiert, auf einer der Rechenvorrichtungen 104 an einer Nutzerschnittstelle angezeigt und an eine andere der Rechenvorrichtungen 104 durch eine Auswahl in den Steuerungen bzw. Regelungen 530 gesendet werden. Bei einem Beispiel erfordert die Auswahl eine einzige Nutzerhandlung, so beispielsweise das Aktivieren der Schaltfläche „Senden an Freunde“, was bewirkt, dass das angeglichene Bild 528 an eine vorbestimmte Liste von Rechenvorrichtungen, Personen oder Kombinationen hieraus gesendet wird.
-
Nach erfolgter Betrachtung einer exemplarischen Nutzerschnittstelle folgt nunmehr eine Diskussion exemplarischer Prozeduren zum Entfernen und Ersetzen von Objekten in einem zu bearbeitenden Bild entsprechend einem oder mehreren Aspekten der Offenbarung.
-
Exemplarische Prozeduren
-
6 zeigt eine exemplarische Prozedur 600 zum Nachbearbeiten eines zu bearbeitenden Bildes durch Entfernen oder Ersetzen von Objekten in dem Bild entsprechend einem oder mehreren Aspekten der vorliegenden Offenbarung. Aspekte der Prozedur können in Hardware, Firmware oder Software oder auch in einer Kombination hieraus implementiert sein. Die Prozedur ist als Satz von Blöcken gezeigt, die Operationen spezifizieren, die von einer oder mehreren Vorrichtungen durchgeführt werden und nicht unbedingt auf diejenigen Reihenfolgen beschränkt sind, die zur Durchführung der Operationen durch die jeweiligen Blöcke gezeigt sind. Bei wenigstens einigen Aspekten kann die Prozedur in einer Digitalmedienumgebung von einer geeignet konfigurierten Rechenvorrichtung durchgeführt werden, so beispielsweise von einer oder mehreren der Rechenvorrichtungen 104 oder dem Server 116 von 1, die auf ein Bildnachbearbeitungssystem, so beispielsweise das System 400 oder das Bildnachbearbeitungssystem 110, zugreifen. Ein Bildnachbearbeitungssystem zur Implementierung der Prozedur 600 kann eine unabhängige Anwendung sein, die auf der Rechenvorrichtung installiert worden ist, aber auch ein Server, der von einem Dienstanbieter gehostet wird und auf den die Rechenvorrichtung zugreifen kann, ein Plug-in-Modul für die Rechenvorrichtung oder auch Kombinationen hieraus.
-
Ein Nutzerdialog wird von einer Rechenvorrichtung geführt (Block 602). Der Nutzerdialog ist beispielsweise ein geführter Nutzerdialog. Der Nutzerdialog beinhaltet eine Bearbeitungsanfrage für ein zu bearbeitendes Bild. Der Nutzerdialog kann zwischen einer Rechenvorrichtung und einem oder mehreren Nutzern, die mit der Rechenvorrichtung sprechen, stattfinden. Bei einem Beispiel beinhaltet das Führen des Nutzerdialogs das Versenden einer Bearbeitungsanfrage (beispielsweise „Möchtest Du etwas entfernen oder ersetzen?“) und das Empfangen einer Bestätigung, die ein Objekt angibt (beispielsweise „Ja, entfern den Picknicktisch“). Das Führen des Nutzerdialogs kann daher zudem das Empfangen einer Angabe der Ersetzungsaufforderung oder einer Angabe der Entfernungsaufforderung beinhalten.
-
Pixel des Bildes, die einem zu entfernenden oder zu ersetzenden Objekt, das in dem Nutzerdialog angegeben ist, entsprechen, werden ermittelt (Block 604). Das Ermitteln von Pixeln kann das Bestimmen von Pixeln beinhalten. Das Objekt kann ein beliebiges geeignetes Objekt, so beispielsweise einen Himmel, eine Person, ein Tier, ein unbelebtes Objekt oder einen Hintergrund des Bildes, angeben oder beinhalten. Bei einem Beispiel beinhaltet das Ermitteln von Pixeln des Bildes das Bestimmen eines Satzes von inversen Pixeln, die die Pixel des Bildes nicht beinhalten, und das Bestimmen der Pixel des Bildes aus dem Satz von inversen Pixeln.
-
Beinhalten kann das Ermitteln der Pixel des Bildes zusätzlich oder alternativ das Generieren einer Objektmaske für das Objekt, das Erweitern der Objektmaske zur Schaffung eines Bereiches, die vom Rand der Objektmaske begrenzt wird, und das Generieren einer verfeinerten Maske, die die Pixel des Bildes darstellt, die dem Objekt entsprechen, durch Trennen eines Hintergrundes von einem Vordergrund in dem Bereich. Bei einem Beispiel werden Beiträge zu Pixeln in dem Bereich aus dem Hintergrund des Bildes entfernt.
-
Des Weiteren kann das Ermitteln von Pixeln des Bildes, die dem Objekt entsprechen, von einem Erfassungsmodul, das für das Objekt spezifisch ist, durchgeführt werden. So kann ein Erfassungsmodul beispielsweise eine Entitätssegmentierung mittels eines oder mehrerer neuronaler Netzwerke durchführen, die dafür trainiert sind, jeweilige Entitäten in dem Bild zu identifizieren. Eine Entität kann ein beliebiges geeignetes Objekt sein.
-
Es wird bestimmt, ob die Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet (Block 606). Bei einem Beispiel beruht das Bestimmen dessen, ob die Bearbeitungsanfrage die Entfernungsaufforderung oder die Ersetzungsaufforderung beinhaltet, jeweils auf einem Abgleich von Worten des Nutzerdialogs mit Listen von Worten, die als ähnlich bestimmt worden sind, zum Entfernen oder Ersetzen. Zusätzlich oder alternativ beinhaltet das Bestimmen dessen, ob die Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet, das Verarbeiten der Bearbeitungsanfrage zum Identifizieren von Subjekt-Objekt-Paaren aus einer Zeichenfolge von Worten des Nutzerdialogs. Die Zeichenfolge wird in einen ersten Teil, der Worte der Zeichenfolge im Zusammenhang mit einem Subjektabschnitt der Subjekt-Objekt-Paare enthält, und einen zweiten Teil, der Worte der Zeichenfolge im Zusammenhang mit einem Objektabschnitt der Subjekt-Objekt-Paare enthält, getrennt. Der erste Teil und der zweite Teil können dafür genutzt werden, Bilder, die Füllmaterial oder Ersetzungsmaterial beinhalten, zu beziehen, und zwar beispielsweise durch Erstellen einer Suchanfrage mit Begriffen aus dem ersten oder zweiten Teil.
-
In Reaktion auf das Bestimmen einer Angabe dessen, dass die Bearbeitungsanfrage eine Entfernungsaufforderung beinhaltet, wird mit Blöcken 608, 610 und 612 begonnen.
-
Es wird Füllmaterial, das als ähnlich zu verschiedenen Pixeln des Bildes im Vergleich zu den Pixeln des Bildes erkannt worden ist, bezogen (Block 608). Das Füllmaterial kann auf beliebige geeignete Weise bezogen werden, so beispielsweise durch Beziehen eines oder mehrerer Bilder, die Füllmaterial beinhalten. Das Füllmaterial kann beispielsweise aus einem zu bearbeitenden Bild selbst bezogen werden, so beispielsweise aus einem anderen Teil des Bildes im Vergleich zu den Pixeln, die einem zu entfernenden Objekt entsprechen. Bei einem Beispiel werden ein oder mehrere Bilder, die Füllmaterial beinhalten, auf Grundlage einer Suche in Bildern unter Nutzung der Worte des ersten Teils der Zeichenfolgeworte bezogen, die wiederum durch Verarbeiten der Bearbeitungsanfrage beim Bestimmen dessen bezogen werden, ob die Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet. Zusätzlich oder alternativ kann Füllmaterial synthetisiert werden (also beispielsweise durch einen Prozess generiert werden, der das Füllmaterial durch Methoden herstellt, die nicht das Extrahieren von Füllmaterial aus einem Bild darstellen). Bezogen wird Füllmaterial bei einem Beispiel durch Synthetisieren eines ersten Füllmaterials, Beziehen eines zweiten Füllmaterials aus einem Bild (beispielsweise einem Bild, das in einem Suchergebnis ausgegeben wird) und Kombinieren des ersten Füllmaterials und des zweiten Füllmaterials auf beliebige geeignete Weise zur Bildung des Füllmaterials.
-
Content wird aus den Pixeln des Bildes entfernt (Block 610). Entsprechend wird ein Loch in dem Bild geschaffen.
-
Das Füllmaterial wird zu den Pixeln des Bildes hinzugefügt, um ein oder mehrere zusammengestellte Bilder zu bilden (Block 612). Entsprechend füllt das Hinzufügen des Füllmaterials ein Loch, das geschaffen wird, wenn der Content von den Pixeln entfernt wird. Das Hinzufügen des Füllmaterials kann das Durchführen einer Hintergrundbereinigung, wie vorstehend erläutert worden ist, beinhalten.
-
In Reaktion auf das Bestimmen einer Angabe dessen, dass die Bearbeitungsanfrage eine Ersetzungsaufforderung beinhaltet, wird mit Blöcken 614 und 616 begonnen.
-
Es wird Ersetzungsmaterial, das als ähnlich zu den Pixeln des Bildes erkannt worden ist und der Ersetzungsaufforderung entspricht, bezogen (Block 614). Ersetzungsmaterial kann auf beliebige geeignete Weise bezogen werden, so beispielsweise durch Beziehen eines oder mehrerer Bilder, die Ersetzungsmaterial beinhalten. Ersetzungsmaterial kann beispielsweise aus einem zu bearbeitenden Bild selbst bezogen werden, so beispielsweise aus einem anderen Teil des Bildes im Vergleich zu den Pixeln des Bildes, die einem zu ersetzenden Objekt entsprechen. Bezogen werden ein oder mehrere Bilder, die Ersetzungsmaterial beinhalten, bei einem Beispiel auf Grundlage von Suchen in Bildern unter Nutzung der Worte des zweiten Teiles der Zeichenfolgeworte, die durch Verarbeiten der Bearbeitungsanfrage beim Bestimmen dessen bezogen werden, ob die Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet. Zusätzlich oder alternativ kann Ersetzungsmaterial synthetisiert werden (beispielsweise durch einen Prozess generiert werden, der das Ersetzungsmaterial durch Verfahren erzeugt, die nicht das Extrahieren von Ersetzungsmaterial aus einem Bild darstellen). Bezogen wird das Ersetzungsmaterial bei einem Beispiel durch Synthetisieren eines ersten Ersetzungsmaterials, Beziehen eines zweiten Ersetzungsmaterials aus einem Bild (beispielsweise einem Bild, das in einem Suchergebnis ausgegeben wird) und auf beliebige geeignete Weise erfolgendes Kombinieren des ersten Ersetzungsmaterials und des zweiten Ersetzungsmaterials zur Bildung des Ersetzungsmaterials.
-
Des Weiteren können ein Bild, das Füllmaterial beinhaltet, und ein Bild, das Ersetzungsmaterial beinhaltet, aus einer Bilderdatenbank bezogen werden, so beispielsweise aus einer Vorratsbilderdatenbank oder aus der persönlichen Bildersammlung eines Nutzers. Zusätzlich oder alternativ können ein oder mehrere Bilder, die Füllmaterial beinhalten, und ein oder mehrere Bilder, die Ersetzungsmaterial beinhalten, dadurch bezogen werden, dass eine Anfragezeichenfolge, die Kombinationen von Worten aus dem Nutzerdialog beinhaltet, mit Synonymen anderer Worte aus dem Nutzerdialog gebildet wird. Bei einem Beispiel wird das Füllmaterial oder das Ersetzungsmaterial aus wenigstens einem Bild bezogen, wobei das wenigstens eine Bild wenigstens eines von dem zu bearbeitenden Bild oder einem Bild in einer Bilderdatenbank beinhaltet. Zusätzlich oder alternativ kann das Füllmaterial oder das Ersetzungsmaterial durch Synthetisieren des Füllmaterials oder des Ersetzungsmaterials bezogen werden.
-
Der Content der Pixel des Bildes wird durch das Ersetzungsmaterial ersetzt, um das eine oder die mehreren zusammengestellten Bilder zu bilden (Block 616).
-
Das eine oder die mehreren zusammengestellten Bilder werden angeglichen, um ein oder mehrerer angeglichene Bilder zu bilden (Block 618). Das Angleichen kann ein derartiges Anpassen der Beleuchtung wenigstens eines von dem einen oder den mehreren zusammengestellten Bildern beinhalten, dass diese auf die Tageszeiten zwischen Bildmaterialien abgestimmt ist.
-
Das eine oder die mehreren angeglichenen Bilder werden in einer Nutzerschnittstelle der Rechenvorrichtung präsentiert (Block 620). Bei einem Bild zeigt die Nutzerschnittstelle ein Zwischenbild an, das ein Kandidatenobjekt angibt, und es wird eine Bestätigung angefordert, dass das Kandidatenobjekt in dem Zwischenbild auf das durch die Bearbeitungsanfrage angegebene Objekt abgestimmt ist. Die Bestätigung kann auf vielerlei Eingabearten, so beispielsweise durch Sprache und Auswahl mit der Maus, gleichzeitig empfangen werden.
-
7 zeigt eine exemplarische Prozedur 700 zum Nachbearbeiten eines zu bearbeitenden Bildes durch Entfernen oder Ersetzen von Objekten in dem Bild entsprechend einer oder mehreren Aspekten der Offenbarung. Aspekte der Prozedur können in Hardware, Firmware oder Software oder auch in einer Kombination hieraus implementiert sein. Die Prozedur ist als Satz von Blöcken gezeigt, die Operationen spezifizieren, die von einer oder mehreren Vorrichtungen durchgeführt werden und nicht unbedingt auf die Reihenfolgen beschränkt sind, die zur Durchführung der Operationen durch die jeweiligen Blöcke gezeigt sind. Bei wenigstens einigen Aspekten kann die Prozedur in einer Digitalmedienumgebung von einer geeignet konfigurierten Rechenvorrichtung durchgeführt werden, so beispielsweise von einer oder mehreren der Rechenvorrichtungen 104 oder dem Server 116 von 1, die ein Bildnachbearbeitungssystem, so beispielsweise das System 400 oder das Bildnachbearbeitungssystem 110 nutzen. Ein Bildnachbearbeitungssystem zur Implementierung der Prozedur 700 kann eine unabhängige Anwendung sein, die auf der Rechenvorrichtung installiert worden ist, aber auch ein Server, der von einem Dienstanbieter gehostet wird und auf den die Rechenvorrichtung zugreifen kann, ein Plug-in-Modul für die Rechenvorrichtung oder auch Kombinationen hieraus.
-
Es wird ein Nutzerdialog, der eine Bearbeitungsanfrage für ein zu bearbeitendes Bild beinhaltet, geführt (Block 702). Ein Nutzerdialog ist beispielsweise ein geführter Nutzerdialog, so beispielsweise im Format eines Gespräches, in einem Format aus Frage und Antwort und dergleichen. Ein Nutzerdialog kann zwischen einer Rechenvorrichtung und einem oder mehreren Nutzern, die mit der Rechenvorrichtung sprechen, stattfinden.
-
Es werden Pixel des Bildes, die einem zu entfernenden oder zu ersetzenden Objekt, das in dem Nutzerdialog angegeben ist, entsprechen, ermittelt (Block 704). Bestimmt werden Pixel bei einem Beispiel mit einem Erfassungsmodul, das für das Objekt spezifisch ist und ein neuronales Netzwerk beinhaltet, das dafür trainiert ist, das Objekt mit einem Trainingssatz von Bildern, die verschiedene Varianten des Objektes beinhalten, zu identifizieren (beispielsweise mittels eines Trainings zum Identifizieren einer Person unter Nutzung von Trainingsbildern mit verschiedenen Menschen).
-
Das Bild wird mit einer Angabe eines Kandidatenobjektes angezeigt (Block 706). Beispiele für eine Angabe beinhalten ein Lasso, eine Markierung, einen Pfeil, eine Musterung, eine Maske, ein Textkästchen, eine Schattierung, eine Behälter (beispielsweise ein Lasso, ein Kästchen, ein Rechteck, einen Klecks, einen Kreis, eine Ellipse und dergleichen, die einen Teil des Objektes einschließen) und dergleichen mehr.
-
Es wird bestätigt, dass das Kandidatenobjekt auf das Objekt abgestimmt ist (Block 708). Das Bestätigen dessen, dass das Kandidatenobjektbild auf das Objekt abgestimmt ist, kann ein Empfangen einer multimodalen Nutzereingabe zur Berichtigung des Kandidatenobjektes beinhalten. Einer der Modi kann Sprache sein, während ein anderer Modus über eine Tastatur, eine Maus, einen Stift, eine Geste oder einen berührungsempfindlichen Schirm und dergleichen eingegeben werden kann.
-
Es wird bestimmt, ob die Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet (Block 710). Die Bearbeitungsanfrage kann beispielsweise von einem Sprachprozessor zum Identifizieren von Schlüsselworten verarbeitet werden, darunter Subjekt-Objekt-Paare, Subjekt-Objekt-Prädikat-Tripel und dergleichen, um ein zu entfernendes Objekt, ein zu ersetzendes Objekt, ein Objekt zum Ersetzen eines zu ersetzenden Objektes, Deskriptoren von Objekten (beispielsweise Jahr und Farbe eines Kraftfahrzeuges) und dergleichen mehr zu bestimmen. Prädikate und Synonyme von Prädikaten können auf Listen von Synonymen für Bearbeitungsfunktionen (beispielsweise Entfernen und Ersetzen) abgestimmt sein, um zu bestimmen, ob die Bearbeitungsanfrage eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet.
-
In Reaktion auf das Bestimmen einer Angabe dessen, dass die Bearbeitungsanfrage eine Entfernungsaufforderung beinhaltet, wird mit Blöcken 712 und 714 begonnen.
-
Es wird Content aus den Pixeln des Bildes entfernt (Block 712). Durch Entfernen von Content aus den Pixeln wird in dem Bild ein Loch geschaffen, das mit Füllmaterial gefüllt wird.
-
Füllmaterial, das als ähnlich zu anderen Pixeln des Bildes im Vergleich zu den Pixeln des Bildes erkannt worden ist, wird zu den Pixeln des Bildes hinzugefügt, um ein oder mehrere zusammengestellte Bilder zu bilden (Block 714). Bei einem Beispiel entsprechen die verschiedenen Pixel dem Hintergrund des Bildes. Zusätzlich oder alternativ können die verschiedenen Pixel einem anderen Objekt in dem Bild, einem Vordergrund des Bildes oder einem beliebigen geeigneten Abschnitt des Bildes entsprechen.
-
In Reaktion auf das Bestimmen einer Angabe, dass die Bearbeitungsanfrage eine Ersetzungsaufforderung beinhaltet, wird Content der Pixel des Bildes durch Ersetzungsmaterial ersetzt, das als ähnlich zu den Pixeln des Bildes erkannt worden ist und der Ersetzungsaufforderung entspricht, um das eine oder die mehreren zusammengestellten Bilder zu bilden (Block 716). Ein Himmelshintergrund kann beispielsweise durch einen anderen Himmelshintergrund, jedoch mit einem anderen Wetter, das in der Bearbeitungsanfrage angegeben ist, ersetzt werden.
-
Das eine oder die mehreren zusammengestellten Bilder werden angeglichen, um ein oder mehrere zusammengestellte Bilder zu bilden, indem das Ersetzungsmaterial oder das Füllmaterial entsprechend den verschiedenen Pixeln angepasst wird (Block 718). Bei einem Beispiel wird das Angleichen von einem Angleichungsmodul, das für das Objekt spezifisch ist, durchgeführt. Das Angleichen entfernt Bearbeitungsartefakte (beispielsweise Zusammenstellungsartefakte) und lässt die angeglichenen Bilder natürlich wirken, damit das Füllmaterial oder das Ersetzungsmaterial nicht ohne Weiteres von einem Beobachter entdeckt werden kann. Das Angleichen kann das Anpassen von Pixeln beinhalten, die nicht die Pixel des Füllmaterials oder des Ersetzungsmaterials sind.
-
Das eine oder die mehreren angeglichenen Bilder werden in einer Nutzerschnittstelle der Rechenvorrichtung präsentiert (Block 720). Bei einem Beispiel nimmt die Nutzerschnittstelle eine multimodale Eingabe an. Zusätzlich oder alternativ kann die Nutzerschnittstelle teilweise oder in Gänze in Reaktion auf das Beziehen des zu bearbeitenden Bildes angezeigt werden (beispielsweise dann, wenn das Bild in ein Bildnachbearbeitungssystem 110 geladen wird).
-
Die hier beschriebenen Prozeduren bieten eine Verbesserung gegenüber Prozeduren, die ein Objekt in einem zu bearbeitenden Bild ohne den Vorteil eines geführten Nutzerdialogs manuell ersetzen oder entfernen. Die hier beschriebenen Prozeduren generieren mehrere Lösungen, die eine Ersetzungsaufforderung oder eine Entfernungsaufforderung automatisch und ohne die Notwendigkeit eines intensiven Trainings durch einen Nutzer erledigen. Sogar Neulinge können natürlich wirkende angeglichene Bilder generieren und ein Objekt in einem Bild entfernen oder ersetzen, und dies ohne Rückgriff auf eine andere Partei, also beispielsweise einen Online-Fotobearbeitungsdienst oder einen Freund, der sich mit der Nutzung von Adobe Photoshop® wie ein Experte auskennt. Ein Nutzer muss lediglich ein zu bearbeitendes Bild bereitstellen und an einem geführten Dialog mit einer Rechenvorrichtung teilnehmen, um angeglichene Bilder zu beziehen, die ein Objekt in dem Bild entfernen oder ersetzen. Entsprechend kann ein Nutzer zahlreiche natürlich wirkende angeglichene Bilder schnell, kostengünstig sowie mit geringem Aufwand und geringer Verzögerung im Vergleich zu Verfahren generieren, die ein Objekt in einem zu bearbeitenden Bild ohne den Vorteil eines geführten Nutzerdialogs manuell entfernen oder ersetzen. Durch Präsentieren von Zwischenbildern und Annehmen einer multimodalen Eingabe für das Bild des Nutzers anstatt eines Tutorialbildes wird der Nutzer bei den hier beschriebenen Verfahren hinsichtlich der Nutzung der Bearbeitungsanwendung während der Arbeit mit seinen aktuellen Daten anstatt mit einem Bild, das ihn keinerlei Bedeutung hat, angewiesen. Durch Empfangen einer multimodalen Nutzereingabe während eines geführten Nutzerdialogs sind die hier beschriebenen Verfahren zudem im Vergleich zu anderen Verfahren zuverlässig (beispielsweise im Vergleich zu den hier beschriebenen Verfahren, die Befehle eines Nutzers richtig deuten, wenn andere Verfahren scheitern). Daher ist ein Nutzer der hier beschriebenen Verfahren weniger frustriert als ein Nutzer anderer Verfahren, die keine multimodale Nutzereingabe während eines geführten Nutzerdialogs empfangen.
-
Nach erfolgter Betrachtung der exemplarischen Prozeduren entsprechend einer oder mehreren Implementierungen werden nunmehr exemplarische Systeme und Vorrichtungen betrachtet, die bei der praktischen Umsetzung der hier beschriebenen erfinderischen Prinzipien genutzt werden können.
-
Exemplarische Systeme und Vorrichtungen
-
8 zeigt allgemein bei 800 ein exemplarisches System, das eine exemplarische Rechenvorrichtung 802 beinhaltet, die ein oder mehrere Rechensysteme und Vorrichtungen darstellt, die die verschiedenen hier beschriebenen Techniken implementieren können. Dies wird durch die Einbeziehung des Bildnachbearbeitungssystems 110, des Systems 400, der Bildnachbearbeitungsanwendung 120 und des Bildunterstützungssystems 118, deren Betrieb vorstehend beschrieben worden ist, dargestellt. Die Rechenvorrichtung 802 kann beispielsweise eine Nutzerrechenvorrichtung (beispielsweise eine der Rechenvorrichtungen 104) oder eine Servervorrichtung eines Dienstanbieters (beispielsweise der Server 116) sein. Darüber hinaus kann die Rechenvorrichtung 802 ein On-Chip-System, mehrere Rechenvorrichtungen, Kombinationen hieraus oder eine andere geeignete Rechenvorrichtung oder ein solches System beinhalten. Entsprechend zeigt 8 die Rechenvorrichtung 802 als eines oder mehrere von einem Tablet, einem Laptopcomputer, einem Smartphone, einer smarten Brille und einer Kamera, obwohl diese Beispiele illustrativ sind und den Typ oder die Anzahl von Vorrichtungen, die in der Rechenvorrichtung 802 beinhaltet sind, keinesfalls beschränken sollen.
-
Die exemplarische Rechenvorrichtung 802 beinhaltet 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 Verarbeitungsmechanismen, die zum Einsatz kommen, beschränkt. Die Prozessoren können beispielsweise aus einem Halbleiter / Halbleitern und Transistoren (beispielsweise elektronischen integrierten Schaltungen (ICs)) bestehen. In diesem Kontext können prozessorseitig ausführbare Anweisungen elektronisch ausführbare Anweisungen sein. Die Prozessoren 124 in 1 sind ein Beispiel für das Verarbeitungssystem 804.
-
Die computerlesbaren Speichermedien 806 sind derart dargestellt, dass sie eine Ablage / einen Speicher 812 beinhalten. Der Speicher 126 von 1 ist ein Beispiel für eine Ablage / einen Speicher, die/der in der Ablage / dem Speicher 812 beinhaltet ist. Die Ablage-/Speicherkomponente 812 kann flüchtige Medien (so beispielsweise einen Speicher mit wahlfreiem Zugriff (RAM)), nichtflüchtige Medien (so beispielsweise einen Nur-Lese-Speicher (ROM), einen Flash-Speicher, optische Platten, magnetische Platten und dergleichen mehr) oder Kombinationen hieraus 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 Nutzung verschiedener Eingabe-/Ausgabevorrichtungen präsentiert wird. Beispiele für Eingabevorrichtungen beinhalten eine Tastatur, eine Cursorsteuer- bzw. Regelvorrichtung (beispielsweise eine Maus), ein Mikrofon, eine Feldanordnung von Mikrofonen, 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 taktilreaktive 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.
-
Die Rechenvorrichtung 802 beinhaltet zudem Anwendungen 814. Die Anwendungen 814 stellen beliebige geeignete Anwendungen dar, die auf der Rechenvorrichtung 802 betrieben werden können, und können einen Web-Browser beinhalten, der dafür betreibbar ist, auf verschiedene Arten von webbasierten Ressourcen zuzugreifen (beispielsweise Assets, Medienclips, Bilder, Content, Konfigurationsdateien, Dienste, Nutzerprofile und dergleichen mehr). Die Anwendungen 814 beinhalten die Bildnachbearbeitungsanwendung 120, wie vorstehend beschrieben worden ist. Die Anwendungen 814 beinhalten des Weiteren beliebige Anwendungen, die das Bildnachbearbeitungssystem 110, das System 800 und das Bildunterstützungssystem 118 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“ bezeichnen Medien und/oder Vorrichtungen oder Kombinationen hieraus, die eine dauerhafte 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 Signale per se oder signaltragende Medien. Computerlesbare Speichermedien beinhalten Hardware, so beispielsweise flüchtige und nichtflüchtige, entfernbare und nichtentfernbare Medien, Speichervorrichtungen oder Kombinationen hieraus, die bei einem Verfahren oder einer Technologie implementiert sind, das/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“ bezeichnen signaltragende Medien, 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 1106 Module, eine programmierbare Vorrichtungslogik, eine feste Vorrichtungslogik oder Kombinationen hieraus dar, die in Form von Hardware implementiert sind und die bei einigen Aspekten dafür eingesetzt werden können, 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, eine Logik oder auch Kombinationen hieraus definiert sind, die durch Hardware verkörpert sind, 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 dafür eingesetzt werden, verschiedene der hier beschriebenen Techniken zu implementieren. Entsprechend können Software, Hardware oder ausführbare Module als eine oder mehrere Anweisungen, als Logik, die in einer Form von computerlesbaren Speichermedien oder durch ein oder mehrere Hardwareelemente 810 implementiert ist, oder als Kombination hieraus implementiert sein. Die Rechenvorrichtung 802 kann dafür konfiguriert sein, bestimmte Anweisungen zu implementieren, die den Software- und Hardwaremodulen entsprechen. Entsprechend kann eine als Software gegebene Implementierung eines Moduls, das von einer Rechenvorrichtung 802 ausführbar ist, wenigstens teilweise in Hardware verwirklicht sein, so beispielsweise durch Nutzung von computerlesbaren Speichermedien und Hardwareelementen 810 des Verarbeitungssystems 804. Die Anweisungen und Funktionen können von einem oder mehreren Objekten (beispielsweise einer oder mehreren Rechenvorrichtungen 802 oder den 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 der hier beschriebenen Techniken beschränkt. Die Funktionalität kann gänzlich oder teilweise durch Nutzung eines verteilten Systems, so beispielsweise über eine „Cloud“ 816 unter Vermittlung einer Plattform 818, wie nachstehend noch beschrieben wird, implementiert sein.
-
Die Cloud 816 beinhaltet die Plattform 818 für Ressourcen 820 und stellt diese dar. Die Plattform 818 abstrahiert eine zugrunde liegende Funktionalität der Hardware (beispielsweise Server) und Softwareressourcen der Cloud 816. Die Ressourcen 820 können Anwendungen, Daten oder Anwendungen und Daten beinhalten, die genutzt werden können, während die Computerverarbeitung auf Servern ausgeführt wird, die remote von der Rechenvorrichtung 802 sind. Die Ressourcen 820 können zudem Dienste beinhalten, die über das Internet, durch ein Teilnehmernetzwerk, so beispielsweise ein zellbasiertes oder Wi-Fi-Netzwerk, oder auch durch Kombinationen hieraus bereitgestellt werden. Die Ressourcen 820 können einen Asset-Store 822 beinhalten, der Assets vorhält, so beispielsweise Bilder, Fotos (beispielsweise Bilder eines Nutzers in einer Galerie, einer Vorratsfotodatenbank und dergleichen), Dokumentschablonen, Nutzerprofildaten, Nutzerbildbibliotheken, so beispielsweise Fotos, die bei einem Sharing-Fotodienst und dergleichen gepostet werden und auf die die Rechenvorrichtung 802 zugreifen kann.
-
Die Plattform 818 kann Ressourcen und Funktionen abstrahieren, um die Rechenvorrichtung 802 mit anderen Rechenvorrichtungen zu verbinden. Die Plattform 818 kann zudem dem Abstrahieren einer Skalierung von Ressourcen dienen, um einen entsprechenden Grad der Skalierung für auftretenden Bedarf an den Ressourcen 820, die über die Plattform 818 implementiert sind, bereitzustellen. Entsprechend kann bei einer Ausführungsform mit wechselseitig verbundenen Vorrichtungen die Implementierung der hier beschriebenen Funktionalität über das System 800 verteilt sein. Die Funktionalität kann teilweise auf der Rechenvorrichtung 802 wie auch über die Plattform 818, die die Funktionalität der Cloud 816 abstrahiert, implementiert sein.
-
Schlussbemerkung
-
Bei einer oder mehreren Implementierungen beinhaltet eine Digitalmedienumgebung wenigstens eine Rechenvorrichtung. Beschrieben werden hier Systeme und Techniken zum Führen eines Nutzerdialogs und Nachbearbeiten eines zu bearbeitenden Bildes durch Entfernen und Ersetzen von Objekten in dem Bild auf Grundlage des geführten Nutzerdialogs. Ein geführter Nutzerdialog wird beispielsweise im Stile eines Gespräches mit Fragen und Antworten geführt, um eine Bearbeitungsanfrage sowie Parameter der Bearbeitungsanfrage zu beziehen. Pixel, die einem Objekt in dem Bild entsprechen, das durch die Bearbeitungsanfrage angegeben ist, werden durch Computererfassungsverfahren, die für den Typ von Objekt spezifisch sind, ermittelt. Die Bearbeitungsanfrage wird verarbeitet, um zu bestimmen, ob sie eine Entfernungsaufforderung oder eine Ersetzungsaufforderung beinhaltet. Auf Grundlage der Verarbeitung der Bearbeitungsanfrage wird eine Suchanfrage erstellt, um beispielsweise aus einer Vorratsbilderdatenbank Bilder zu beziehen, die Füllmaterial oder Ersetzungsmaterial beinhalten, um die Entfernungsaufforderung beziehungsweise die Ersetzungsaufforderung zu erledigen. Zusammengestellte Bilder werden aus dem Füllmaterial oder dem Ersetzungsmaterial und einem zu bearbeitenden Bild entsprechend der Bearbeitungsanfrage zusammengestellt, wobei die zusammengestellten Bilder angeglichen werden, um Bearbeitungsartefakte zu entfernen und die Bilder natürlich wirken zu lassen. Eine Nutzerschnittstelle präsentiert Bilder, darunter angeglichene Bilder, zusammengestellte Bilder und Zwischenbilder. Die Nutzerschnittstelle nimmt eine multimodale Nutzereingabe während des geführten Nutzerdialogs an.
-
Obwohl die Erfindung in einer Sprache beschrieben worden ist, die für strukturelle Merkmale und methodische Vorgänge spezifisch ist, sollte einsichtig sein, dass die in den beigefügten Ansprüchen definierte Erfindung nicht notwendigerweise 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.