-
Hintergrund
-
Das automatische Erzeugen von in natürlicher Sprache gegebenen Beschreibungen von Bildern hat infolge praktischer Anwendungen bei der Bildsuche, der Bereitstellung eines Zugangs für Menschen mit beeinträchtigtem Sehsinn und der Verwaltung von Bildsammlungen zunehmendes Interesse gefunden. Herkömmliche Techniken zur Bildverarbeitung unterstützen keine hochpräzise in natürlicher Sprache gegebene Beschriftung und Bildsuche infolge von Beschränkungen bei herkömmlichen Bildauszeichnungs- und Suchalgorithmen. Dies rührt daher, dass herkömmliche Techniken lediglich Auszeichnungen (tags) mit den Bildern verknüpfen, jedoch weder Beziehungen zwischen den Auszeichnungen (tags), noch mit dem Bild selbst definieren. Zudem implizieren herkömmliche Techniken gegebenenfalls einen vom Allgemeinen zum Speziellen (top-down) gehenden Lösungsansatz, bei dem zunächst ein „Gesamteindruck” eines Bildes hergeleitet wird, der sodann mittels Sprachmodellierung und Satzerzeugung zu geeigneten beschreibenden Wörtern und Beschriftungen verfeinert wird. Dieser vom Allgemeinen zum Speziellen (top-down) gehende Lösungsansatz ist jedoch bei der Erfassung von feinen Bilddetails, so beispielsweise von lokalen Objekten, Attributen und Bereichen, die zu genauen Beschreibungen für die Bilder beitragen, nicht von Nutzen. Als solches ist die Verwendung von herkömmlichen Techniken beim Erzeugen von präzisen und komplexen Bildbeschriftungen problematisch, so beispielsweise bei „Ein Mann füttert ein Baby in einem Hochstuhl, wobei das Baby ein Spielzeug hält”. Infolgedessen lassen Beschriftungen, die unter Verwendung der herkömmlichen Techniken erzeugt werden, gegebenenfalls wichtige Bilddetails weg, wodurch es für Nutzer schwierig wird, nach spezifischen Bildern zu suchen und den Inhalt eines Bildes auf Grundlage der damit verknüpften Beschriftungen vollständig zu erfassen.
-
Zusammenfassung
-
Die vorliegende Zusammenfassung bietet in vereinfachter Form eine Auswahl von Konzepten, die nachstehend in der Detailbeschreibung weiter beschrieben werden. Als solches sollte die vorliegende Zusammenfassung wesentliche Merkmale des beanspruchten Erfindungsgegenstandes weder identifizieren, noch soll sie als Hilfe bei der Bestimmung des Umfanges des beanspruchten Erfindungsgegenstandes verwendet werden.
-
Es werden Techniken zur Bildbeschriftung mit schwacher Überwachung beschrieben. Bei einer oder mehreren Implementierungen werden Daten schwacher Überwachung im Zusammenhang mit einem Zielbild bezogen und dazu genutzt, Detailinformation bereitzustellen, die globale Bildkonzepte mit Herleitung zur Bildbeschriftung ergänzt. Daten schwacher Überwachung bezeichnen hierbei schwammige bzw. unpräzise Daten, die nicht sorgsam gepflegt sind und Fehler beinhalten können. Bei einem gegebenen Zielbild können Daten schwacher Überwachung für visuell ähnliche Bilder aus verschiedenen Quellen von schwach kommentierten Bildern gesammelt werden, so beispielsweise von sozialen Onlinenetzwerken, Seiten zum Bildersharing und Bilddatenbanken. Im Allgemeinen beinhalten online hinterlegte Bilder „schwache” Kommentierungen in Form von Auszeichnungen (tags), Titeln, Etiketten und Kurzbeschreibungen, die von Nutzern hinzugefügt werden. Daten schwacher Überwachung für das Zielbild werden durch Extrahieren und Aggregieren bzw. Anhäufen von Schlüsselwörtern für visuell ähnliche Bilder, die in den verschiedenen Quellen von schwach kommentierten Bildern ausfindig gemacht werden, erzeugt. Die in den Daten schwacher Überwachung beinhalteten Schlüsselwörter werden sodann dafür eingesetzt, Gewichtungen mit Anwendung für wahrscheinlichkeitsbasierte Klassifizierungen während der Bildbeschriftungsanalyse zu modulieren. Entsprechend werden Wahrscheinlichkeitsverteilungen mit Verwendung zum Vorhersagen von Wörtern zur Bildbeschriftung in Abhängigkeit von den Daten schwacher Überwachung berechnet.
-
Bei gewissen Implementierungen basiert das Bildbeschriftungssystem auf einem neuronalen Netzwerk und Maschinenlernen. Bei einem gegebenen Zielbild werden Merkmalsextraktionstechniken dafür angewendet, globale Bildkonzepte, die den „Eindruck” des Bildes beschreiben, herzuleiten. Es kann beispielsweise ein vortrainiertes faltungstechnisches neuronales Netzwerk (CNN) zum Codieren der Bilder mit globalen beschreibenden Begriffen verwendet werden. Das CNN erzeugt einen visuellen Merkmalsvektor, der die globalen Bildkonzepte wiedergibt. Information, die im Zusammenhang mit den globalen Bildkonzepten hergeleitet worden ist, wird sodann in ein Sprachverarbeitungsmodell eingespeist, das derart arbeitet, dass es wahrscheinlichkeitsbasiert eine beschreibende Beschriftung des Bildes erzeugt. Der visuelle Merkmalsvektor kann beispielsweise in ein rekurrentes neuronales Netzwerk (RNN) eingespeist werden, das dafür ausgelegt ist, Sprachmodellierungs- und Satzerzeugungstechniken zu implementieren. Das RNN ist dafür ausgelegt, iterativ eine Abfolge von zu kombinierenden Wörtern als Beschriftung für das Zielbild auf Grundlage von Wahrscheinlichkeitsverteilungen mit Berechnung entsprechend Gewichtungsfaktoren in mehreren Iterationen vorherzusagen. In diesem Zusammenhang informieren die Daten schwacher Überwachung den Betrieb des RNN, damit dieses zusätzliche Detailinformationen berücksichtigt, indem die in dem Modell angewendeten Gewichtungsfaktoren angepasst werden. Auf diese Weise werden in den Daten schwacher Überwachung beinhaltete Schlüsselwörter in das Bildbeschriftungssystem eingespeist, um globale Bildkonzepte zu ergänzen, was die Erzeugung von Bildbeschriftungen mit größerer Komplexität und Präzision ermöglicht.
-
Kurzbeschreibung der Zeichnung
-
Die Detailbeschreibung erfolgt anhand der begleitenden Figuren. In den Figuren bezeichnet die am weitesten links stehende Ziffer eines Bezugszeichens/bezeichnen die am weitesten links stehenden Ziffern eines Bezugszeichen diejenige Figur, in der das Bezugszeichen erstmalig auftritt. Die Verwendung desselben Bezugszeichens an verschiedenen Stellen in der Beschreibung und in den Figuren kann auf ähnliche oder identische Objekte verweisen. Entitäten, die in den Figuren dargestellt sind, können eine oder mehrere Entitäten bezeichnen, weshalb der Verweis auf eine oder mehrere Formen von Entitäten in der Diskussion gleichwertig erfolgen kann.
-
1 ist eine Darstellung einer Umgebung bei einer exemplarischen Implementierung, die dafür betreibbar ist, die hier beschriebenen Techniken einzusetzen.
-
2 ist ein Diagramm zur Darstellung von Details eines Beschriftungserzeugers entsprechend einer oder mehreren Implementierungen.
-
3 zeigt eine exemplarische Implementierung eines Bildbeschriftungssystems entsprechend einer oder mehreren Implementierungen.
-
4 ist ein Diagramm zur Darstellung von Details bei einem Bildbeschriftungssystem entsprechend einer oder mehreren Implementierungen.
-
5 ist ein Diagramm zur Darstellung eines Systems zur Bildbeschriftung mit schwacher Überwachung entsprechend einer oder mehreren Implementierungen.
-
6 ist ein Flussdiagramm für eine exemplarische Prozedur, bei der Daten schwacher Überwachung zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen eingesetzt werden.
-
7 ist ein exemplarisches Diagramm, das allgemein das Konzept von Wortvektordarstellungen zur Bildbeschriftung darstellt.
-
8 ist ein Flussdiagramm für eine exemplarische Prozedur, bei der Wortvektordarstellungen zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen eingesetzt werden.
-
9 ist ein Diagramm zur Darstellung eines Systems semantischer Aufmerksamkeit zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen.
-
10 ist ein Flussdiagramm für eine exemplarische Prozedur, bei der ein Modell semantischer Aufmerksamkeit zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen eingesetzt wird.
-
11 ist ein Diagramm zur Darstellung von Details eines Systems semantischer Aufmerksamkeit entsprechend einer oder mehreren Implementierungen.
-
12 zeigt ein exemplarisches System, das verschiedene Komponenten einer exemplarischen Vorrichtung beinhaltet, die für eine oder mehrere Implementierungen von Techniken zur Bildbeschriftung eingesetzt werden kann.
-
Detailbeschreibung
-
Übersicht
-
Herkömmliche Techniken zur Bildverarbeitung unterstützen keine hochpräzise in natürlicher Sprache erfolgende Bildbeschriftung und Bildsuche infolge von Beschränkungen bei herkömmlichen Bildauszeichnungs- (tagging) und Suchalgorithmen. Dies rührt daher, dass herkömmliche Techniken lediglich Auszeichnungen (tags) mit den Bildern verknüpfen, jedoch weder Beziehungen zwischen den Auszeichnungen (tags), noch mit dem Bild selbst definieren. Darüber hinaus beinhalten herkömmliche Techniken gegebenenfalls einen vom Allgemeinen zum Speziellen (top-down) gehenden Lösungsansatz, bei dem zunächst ein „Gesamteindruck” eines Bildes hergeleitet wird, der sodann durch Sprachmodellierung und Satzerzeugung zu geeigneten beschreibenden Wörtern und Beschriftungen verfeinert wird. Dieser vom Allgemeinen zum Speziellen (top-down) gehende Lösungsansatz ist beim Erfassen von feinen Bilddetails, so beispielsweise von lokalen Objekten, Attributen und Bereichen, die zu präzisen Beschreibungen für die Bilder beitragen, nicht von Nutzen.
-
Beschrieben werden hier Techniken zur Bildbeschriftung mit schwacher Überwachung. Bei einer oder mehreren Implementierungen werden Daten schwacher Überwachung im Zusammenhang mit einem Zielbild bezogen und dafür genutzt, Detailinformation bereitzustellen, die globale Bildkonzepte mit Herleitung zur Bildbeschriftung ergänzt. Daten schwacher Überwachung bezeichnen hierbei schwammige bzw. unpräzise Daten, die nicht sorgsam gepflegt sind und Fehler beinhalten können. Bei einem gegebenen Zielbild können Daten schwacher Überwachung für visuell ähnliche Bilder aus verschiedenen Quellen von schwach kommentierten Bildern gesammelt werden, so beispielsweise von sozialen Onlinenetzwerken, Seiten zum Bildersharing und Bilddatenbanken. Im Allgemeinen beinhalten online hinterlegte Bilder „schwache” Kommentierungen in Form von Auszeichnungen (tags), Titeln, Etiketten und Kurzbeschreibungen, die von Nutzern hinzugefügt werden. Erzeugt werden Daten schwacher Überwachung für das Zielbild durch Extrahieren und Aggregieren bzw. Anhäufen von Schlüsselwörtern für visuell ähnliche Bilder, die in den verschiedenen Quellen von schwach kommentierten Bildern ausfindig gemacht werden. Die in den Daten schwacher Überwachung beinhalteten Schlüsselwörter werden sodann dafür genutzt, Gewichtungen, die für wahrscheinlichkeitsbasierte Klassifizierungen während der Bildbeschriftungsanalyse angewendet werden, zu modulieren. Entsprechend werden Wahrscheinlichkeitsverteilungen, die zum Vorhersagen von Wörtern zur Bildbeschriftung verwendet werden, in Abhängigkeit von Daten schwacher Überwachung berechnet.
-
Bei gewissen Implementierungen beruht das Bildbeschriftungssystem auf einem neuronalen Netzwerk und Maschinenlernen. Bei einem gegebenen Zielbild werden Merkmalsextraktionstechniken eingesetzt, um globale Bildkonzepte herzuleiten, die den „Eindruck” des Bildes beschreiben. Ein vortrainiertes faltungstechnisches neuronales Netzwerk (CNN) kann zum Codieren des Bildes mit globalen beschreibenden Begriffen verwendet werden. Das CNN erzeugt einen visuellen Merkmalsvektor, der globale Bildkonzepte wiedergibt. Information, die im Zusammenhang mit den globalen Bildkonzepten hergeleitet wird, wird sodann in ein Sprachverarbeitungsmodell eingespeist, das derart arbeitet, dass es wahrscheinlichkeitsbasiert eine beschreibende Beschriftung des Bildes erzeugt. Der visuelle Merkmalsvektor kann beispielsweise in ein rekurrentes neuronales Netzwerk (RNN) eingespeist werden, das dafür ausgelegt ist, Sprachmodellierungs- und Satzerzeugungstechniken zu implementieren. Das RNN ist dafür ausgelegt, iterativ eine Abfolge von zu kombinierenden Wörtern als Beschriftung für das Zielbild auf Grundlage von Wahrscheinlichkeitsverteilungen mit Berechnung entsprechend Gewichtungsfaktoren in mehreren Iterationen vorherzusagen. In diesem Zusammenhang informieren die Daten schwacher Überwachung den Betrieb des RNN dahingehend, dass dieses zusätzliche Detailinformation berücksichtigt, indem die in dem Modell angewendet Gewichtungsfaktoren angepasst werden.
-
Techniken zur Bildbeschriftung mit schwacher Überwachung gemäß Beschreibung in vorliegender Druckschrift ermöglichen die Erzeugung von Bildbeschriftungen mit größerer Komplexität und Präzision. Schlüsselwörter, die aus schwach überwachten Kommentierungen hergeleitet sind, können ein Wörterbuch von Wörtern erweitern, die zum Beschriften eines bestimmten Bildes eingesetzt werden, und Wortwahrscheinlichkeiten entsprechend anpassen. Infolgedessen wird der Satz von Kandidatenbeschriftungen derart erweitert, dass er spezifische Objekte, Attribute und Begriffe, die aus Daten schwacher Überwachung hergeleitet sind, beinhaltet. Insgesamt erzeugt dies bessere Beschriftungen, die genauer sind und sehr spezifische Aspekte von Bildern beschreiben können.
-
In der nachfolgenden Diskussion wird zunächst eine exemplarische Ausführungsform beschrieben, die die hier beschriebenen Techniken einsetzen kann. Sodann werden exemplarische Prozeduren und Implementierungsdetails beschrieben, die in der exemplarischen Ausführungsform wie auch in anderen Ausführungsformen durchgeführt werden können. Infolgedessen ist die Leistungsfähigkeit der exemplarischen Prozeduren und Details nicht auf die exemplarische Umgebung beschränkt, und es ist die exemplarische Umgebung nicht auf die Leistungsfähigkeit der exemplarischen Prozeduren und Details beschränkt.
-
Exemplarische Umgebung
-
1 ist eine Darstellung einer Umgebung 100 bei einer exemplarischen Implementierung, die dafür betreibbar ist, die hier beschriebenen Techniken einzusetzen. Die dargestellte Umgebung 100 beinhaltet eine Rechenvorrichtung 102, die ein Verarbeitungssystem 104 beinhaltet, das eine oder mehrere Verarbeitungsvorrichtungen, ein oder mehrere computerlesbare Speichermedien 106 und ein Clientanwendungsmodul 108 beinhaltet, das auf den computerlesbaren Speichermedien 106 verkörpert ist und über das Verarbeitungssystem 104 zum Implementieren der entsprechenden hier beschriebenen Funktionalität betreibbar ist. Bei wenigstens einigen Ausführungsformen kann das Clientanwendungsmodul 108 einen Browser der Rechenvorrichtung darstellen, der dafür betreibbar ist, auf verschiedene Arten von webbasierten Ressourcen (beispielsweise Content und Dienste) zuzugreifen. Das Clientanwendungsmodul 108 kann zudem eine clientseitige Komponente darstellen, die eine integrierte Funktionalität aufweist, die dafür betreibbar ist, auf webbasierte Ressourcen (beispielsweise eine netzwerkaktivierte Anwendung), zuzugreifen, durch das Internet zu surfen, mit Onlineanbietern zu interagieren und dergleichen mehr.
-
Die Rechenvorrichtung 102 kann zudem ein Bildsuchwerkzeug 110, das eine Funktionalität darstellt, die zum Implementieren von Techniken zur Bildsuche gemäß vorstehender und nachstehender Beschreibung betreibbar ist, beinhalten oder Gebrauch davon machen. Das Bildsuchwerkzeug 110 ist beispielsweise dafür betreibbar, auf verschiedene verfügbare Quellen von Bildern zuzugreifen, um Kandidatenbilder ausfindig zu machen, die zu Abfragebegriffen passen, und diese zu nutzen. Das Bildsuchwerkzeug 110 stellt des Weiteren eine Funktionalität zum Durchführen von verschiedenen Handlungen zur Erleichterung von Suchvorgängen auf Grundlage eines Kontextes eines Bildframes gemäß vorliegender Beschreibung dar, so beispielsweise die Analyse von Content in der Umgebung eines Bildframes, die Textanalytik zum Herleiten von Abfragebegriffen zur Verwendung als Suchparameter, die Erkennung einer benannten Entität und/oder die Erstellung von Abfragen, um nur einige wenige Beispiele zu nennen. Bilder, die auf Grundlage von Bildsuchvorgängen, die über das Bildsuchwerkzeug 110 durchgeführt werden, ausfindig gemacht werden, können über eine Nutzerschnittstelle 111 präsentiert werden, die von dem Clientanwendungsmodul 108 oder einer anderen Anwendung bzw. App ausgegeben wird, für die das Bildsuchwerkzeug 110 konfiguriert ist, um eine Funktionalität für extrapolative Bildsuchvorgänge im Bestand (extrapolative stock image searches) bereitzustellen.
-
Das Bildsuchwerkzeug 110 kann als Softwaremodul, Hardwarevorrichtung oder unter einer Verwendung einer Kombination aus Software, Hardware, Firmware, einer festen Schaltlogik und dergleichen mehr implementiert sein. Das Bildsuchwerkzeug 110 kann als eigenständige Komponente der Rechenvorrichtung 102, wie dargestellt, implementiert sein. Zusätzlich oder alternativ kann das Bildsuchwerkzeug 110 als Komponente des Clientanwendungsmoduls 108, als Betriebssystem oder als andere Vorrichtungsanwendung bzw. App konfiguriert sein. Das Bildsuchwerkzeug 110 kann beispielsweise als Plugin und/oder herunterladbares Skript für einen Browser bereitgestellt werden. Das Bildsuchwerkzeug 110 kann zudem ein Skript darstellen, das auf einer Webpage, in einer Webanwendung bzw. App oder bei anderen Ressourcen, die von einem Dienstanbieter verfügbar gemacht werden, enthalten ist oder auf andere Weise zugänglich gemacht wird.
-
Die Rechenvorrichtung 102 kann als beliebiger geeigneter Typ von Rechenvorrichtung konfiguriert sein. Konfiguriert sein kann die Rechenvorrichtung beispielsweise als Desktopcomputer, Laptopcomputer, Mobilvorrichtung (unter Annahme einer manuellen Konfiguration wie bei einem Tablet oder Mobiltelefon), Tablet und dergleichen mehr. Daher kann die Rechenvorrichtung 102 von volle Ressourcen aufweisenden Vorrichtungen mit beträchtlichen Speicher- und Prozessorressourcen (beispielsweise Personalcomputer, Spielekonsolen) zu einer geringe Ressourcen aufweisenden Vorrichtung mit beschränkten Speicher- und/oder Verarbeitungsressourcen (beispielsweise Mobilvorrichtungen) reichen. Obwohl darüber hinaus eine einzige Rechenvorrichtung 102 gezeigt ist, kann die Rechenvorrichtung 102 auch eine Mehrzahl von verschiedenen Vorrichtungen darstellen, die Operationen „über die Cloud”, wie nachstehend noch im Zusammenhang mit 13 beschrieben wird, durchführen.
-
Die Umgebung 100 stellt des Weiteren einen oder mehrere Dienstanbieter 112 bereit, die dafür konfiguriert sind, mit der Rechenvorrichtung 102 über ein Netzwerk 114, so beispielsweise das Internet, zu kommunizieren, um eine „cloudbasierte” Rechenumgebung bereitzustellen. Der Dienstanbieter 112 ist allgemein dafür konfiguriert, verschiedene Ressourcen 116 über das Netzwerk 114 für Kunden bzw. Clients verfügbar zu machen. Bei einigen Szenarien richtet der Nutzer gegebenenfalls Konten ein, die dafür genutzt werden, entsprechende Ressourcen von einem Anbieter zugänglich zu machen. Der Anbieter kann Berechtigungsnachweise (credentials) eines Nutzers (beispielsweise den Nutzernamen und ein Passwort) authentifizieren, bevor er einen Zugriff auf ein Konto und entsprechende Ressourcen 116 ermöglicht. Andere Ressourcen 116 können frei zugänglich gemacht werden (also beispielsweise ohne Authentifizierung oder kontenbasierten Zugriff). Die Ressourcen 116 können eine beliebige geeignete Kombination aus Diensten und/oder Content beinhalten, die typischerweise über ein Netzwerk von einem oder mehreren Anbietern zur Verfügung gestellt werden. Einige Beispiele für Dienste beinhalten unter anderem einen Fotobearbeitungsdienst, einen Webentwicklungs- und Verwaltungsdienst, einen Zusammenarbeitsdienst, einen Dienst eines sozialen Netzwerkes, einen Mitteilungsdienst, einen Werbedienst und dergleichen mehr. Content kann verschiedene Kombinationen aus Text, Video, Anzeigen, Audio, Multimediastreams, Animationen, Bildern, Webdokumenten, Webseiten, Anwendungen bzw. Apps, Vorrichtungsanwendungen bzw. Apps und dergleichen mehr beinhalten.
-
Webanwendungen bzw. Apps 118 stellen eine bestimmte Art von Ressource 116 dar, die über einen Dienstanbieter 112 zugänglich gemacht werden kann. Webanwendungen bzw. Apps 118 können über ein Netzwerk 114 unter Verwendung eines Browsers oder eines anderen Clientanwendungsmoduls 108 betrieben werden, um einen clientseitigen Code für die Webanwendung zu beziehen und zum Laufen zu bringen. Bei wenigstens einigen Implementierungen wird eine Laufzeitumgebung zur Ausführung der Webanwendung bzw. App 118 durch den Browser (oder das andere Clientanwendungsmodul 108) bereitgestellt. Daher können Dienst und Content, die von dem Dienstanbieter verfügbar gemacht werden, als Webanwendungen bzw. Apps bei einigen Szenarien zugänglich sein.
-
Der Dienstanbieter ist des Weiteren derart dargestellt, dass er einen Bilddienst 120 beinhaltet, der dafür konfiguriert ist, eine Bilddatenbank 122 entsprechend den hier beschriebenen Techniken bereitzustellen. Der Bilddienst 120 kann dafür arbeiten, verschiedene Bildquellen 124 zu durchsuchen und Bilder 126, die aus den Bildquellen verfügbar sind, zu analysieren und zu pflegen, um die Bilddatenbank 122 zu erzeugen. Die Bilddatenbank 122 stellt einen serverseitigen Bestand an gepflegten Bildern bereit, auf die von Clients bzw. Kunden zugegriffen werden kann, um sie in Webseiten, Worddokumente, Präsentationen und anderen Content einzubinden. Der Bilddienst 120 kann beispielsweise dafür konfiguriert sein, für Clients bzw. Kunden/Anwendungen bzw. Apps einen Zugang zur Nutzung der Bilddatenbank 122 über die jeweiligen Bildsuchwerkzeuge 110 bereitzustellen. Beispielhalber ist der Bilddienst 120 derart dargestellt, dass er eine Suchanwendungsprogrammierschnittstelle (Such-API) 128 implementiert, durch die Clients bzw. Kunden/Anwendungen bzw. Apps Suchanfragen bereitstellen können, um Suchvorgänge über den Bilddienst 120 zu definieren und zu initiieren.
-
Der Bilddienst 120 kann zusätzlich einen Beschriftungserzeuger 130 beinhalten. Der Beschriftungserzeuger 130 stellt eine Funktionalität dar, die dafür betreibbar ist, Bildbeschriftungstechniken gemäß vorstehender und nachstehender Beschreibung zu implementieren. Allgemein ist der Beschriftungserzeuger 130 derart ausgelegt, dass er Bilder analysiert, um in natürlicher Sprache gegebene Beschreibungen der Bilder zu erzeugen, so beispielsweise „Ein Mann reitet auf einem Surfbrett auf einer Welle”. Bei gewissen Implementierungen beruht der Beschriftungserzeuger 130 auf einem neuronalen Netzwerk und dem Maschinenlernen, wovon Details im Zusammenhang mit 3 und 4 nachstehend noch beschrieben werden. Bei gewissen Implementierungen kann ein faltungstechnisches neuronales Netzwerk (CNN) verwendet werden, um das Bild mit globalen beschreibenden Begriffen zu codieren, die sodann in ein rekurrentes neuronales Netzwerk (RNN) eingespeist werden, das dafür ausgelegt ist, Sprachmodellierungs- und Satzerzeugungstechniken zu implementieren. Entsprechend den in der vorliegenden Druckschrift beschriebenen erfinderischen Prinzipien ist der Beschriftungserzeuger 130 dafür konfiguriert, die Kombination aus CNN-Bildmerkmalen und der RNN-Modellierung zur Bildbeschriftung auf verschiedene Weisen zu verbessern. Einleitungshalber sei darauf verwiesen, dass der Betrieb des RNN zur Beschriftungserzeugung durch Bilddetailschlüsselwörter ergänzt werden kann, die aus einer Quelle/aus Quellen von schwach kommentierten Bildern, wie sie im Zusammenhang mit 5 und 6 nachstehend noch beschrieben werden, hergeleitet sind. Zusätzlich oder alternativ kann der Beschriftungserzeuger 130 Darstellungen von Wörtern in einem Vektorwortraum ausgeben, anstelle dessen, Wörter direkt, wie im Zusammenhang mit 7 und 8 erläutert wird, auszugeben. Zudem kann der Beschriftungserzeuger 130 dafür konfiguriert sein, ein Modell semantischer Aufmerksamkeit anzuwenden, um verschiedene Schlüsselwörter für verschiedene Knoten in dem RNN auf Grundlage des Kontextes, wie im Zusammenhang mit 9 bis 11 beschrieben wird, auszuwählen.
-
2 zeigt allgemein bei 200 ein Diagramm zur Darstellung von Details eines Beschriftungserzeugers 130 entsprechend einer oder mehreren Implementierungen. Beim vorliegenden Beispiel ist der Beschriftungserzeuger 130 als Komponente des Bilddienstes 120 implementiert. Man beachte, dass der Beschriftungserzeuger 130 auch auf andere Arten konfiguriert sein kann, so beispielsweise als eigenständiger Dienst, als Komponente des Bildsuchwerkzeuges 110 oder als separate Anwendung bzw. App, die bei Clients, Bildquellen und/oder anderen Entitäten zum Einsatz kommt. Der Beschriftungserzeuger 130 ist derart dargestellt, dass er ein Bildanalysemodell 202 beinhaltet. Das Bildanalysemodell 202 stellt eine Funktionalität dafür dar, ein Bild auf verschiedene Weisen zu verarbeiten, darunter unter anderem mit einer Merkmalsextraktion, einem Metadatenzerlegen bzw. Parsing, einer Patchanalyse, einer Objektdetektion und dergleichen mehr. Das Bildanalysemodell 202 spezifiziert Algorithmen und Operationen, die dafür verwendet werden, relevante Schlüsselwörter und Beschreibungen von Bildern, die zur Beschriftungsanalyse verwendet werden, zu beziehen. Das Bildanalysemodell 202 kann beispielsweise die Definitionen, Prozesse und Parameter für das faltungstechnische neuronale Netzwerk (CNN) und das rekurrente neuronale Netzwerk (RNN) auf Basis der Bildbeschriftung wiedergeben. Zur Verbesserung der Bildbeschriftung ist der Beschriftungserzeuger 130 zusätzlich dafür konfiguriert, Daten schwacher Überwachung 204, Wortvektordarstellungen 206 und/oder ein Modell semantischer Aufmerksamkeit 208 einzeln oder zusammen in beliebigen Kombinationen, wie nachstehend noch detaillierter beschrieben wird, zu verwenden.
-
Nach Betrachtung einer exemplarischen Umgebung folgt nunmehr eine Erläuterung einiger exemplarischer Details von Techniken zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen.
-
Details zur Implementierung der Bildbeschriftung
-
Der vorliegende Abschnitt beschreibt einige exemplarische Details zur Bildbeschriftung mit Verbesserungen entsprechend einer oder mehreren Implementierungen. Die Details werden im Zusammenhang mit exemplarischen Prozeduren, Szenarios und Nutzerschnittstellen gemäß 3 bis 11 erläutert. Die hier erläuterten Prozeduren sind als Sätze von Blöcken dargestellt, die Operationen spezifizieren, die von einer oder mehreren Vorrichtungen durchgeführt werden und nicht notwendigerweise auf diejenigen Reihenfolgen, die zur Durchführung der Operationen durch die jeweiligen Blöcke gezeigt sind, beschränkt sind. Aspekte der Prozeduren können in Hardware, Firmware oder Software oder auch in einer Kombination hieraus implementiert sein. Einige Aspekte der Prozeduren können über einen oder mehrere Server implementiert sein, so beispielsweise einen Dienstanbeiter 112, der einen Zugriff auf eine Bilddatenbank 122 über einen Bilddienst 120 oder auf andere Weise vorhält und bereitstellt. Aspekte der Prozeduren können auch von einer geeignet konfigurierten Vorrichtung durchgeführt werden, so beispielsweise der exemplarischen Rechenvorrichtung 102 von 1, die das Bildsuchwerkzeug 110 und/oder das Clientanwendungsmodul 108 beinhaltet oder davon Gebrauch macht.
-
Allgemein können die Funktionalität, die Merkmale und Konzepte, die hier im Zusammenhang mit den vorstehend und nachstehend angegebenen Beispielen beschrieben sind, im Kontext der exemplarischen Prozeduren, die in der vorliegenden Druckschrift beschrieben sind, eingesetzt werden. Des Weiteren können die Funktionalität, die Merkmale und Konzepte, die im Zusammenhang mit verschiedenen Figuren und Beispielen in der vorliegenden Druckschrift beschrieben sind, ausgetauscht werden und sind nicht auf die Implementierung im Zusammenhang mit einer bestimmten Figur oder Prozedur beschränkt. Darüber hinaus können Blöcke, die mit verschiedenen repräsentativen Prozeduren und entsprechenden Figuren verknüpft sind, zusammen und/oder auf verschiedene Weisen kombiniert angewendet werden. Daher können die einzelne Funktionalität, die Merkmale und Konzepte, die im Zusammenhang mit verschiedenen exemplarischen Umgebungen, Vorrichtungen, Komponenten, Figuren und Prozeduren beschrieben werden, in beliebigen geeigneten Kombinationen verwendet werden und sind nicht auf die speziellen Kombinationen, die durch die nummerierten Beispiele in der vorliegenden Beschreibung dargestellt sind, beschränkt.
-
Bildbeschriftungssystem
-
3 zeigt allgemein bei 300 eine exemplarische Implementierung eines Bildbeschriftungssystems 301. Beim vorliegenden Beispiel setzt das Bildbeschriftungssystem 301 einen maschinenlerntechnischen Lösungsansatz zum Erzeugen eines beschrifteten Bildes ein. Entsprechend werden Trainingsdaten 302 von dem Bildbeschriftungssystem 301 bezogen, die zum Trainieren des Modells verwendet werden, das sodann zur Bildung der Beschriftung eingesetzt wird. Techniken, die zum Trainieren von Modellen bei ähnlichen Szenarios (beispielsweise bei Problemen hinsichtlich des Verstehens eines Bildes) verwendet werden, können darauf beruhen, dass Nutzer Bilder manuell zur Bildung der Trainingsdaten 302 auszeichnen (tagging). Das Modell kann zudem unter Verwendung des Maschinenlernens mittels Techniken trainiert werden, die automatisch und ohne Nutzereingriff durchführbar sind.
-
Bei dem dargestellten Beispiel beinhalten die Trainingsdaten 302 Bilder 304 und damit verknüpften Text 306, so beispielsweise Beschriftungen oder Metadaten, die mit den Bildern 304 verknüpft sind. Ein Extraktormodul 308 wird sodann dafür verwendet, strukturiertes semantisches Wissen 310 zu extrahieren, beispielsweise „<Subjekt, Attribut>, Bild” und „<Subjekt, Prädikat, Objekt>, Bild”, und zwar unter Verwendung einer auf natürlicher Sprache beruhenden Verarbeitung. Die Extraktion kann zudem eine Lokalisierung der strukturierten Semantik bei Objekten oder Bereichen innerhalb des Bildes beinhalten. Verwendet werden kann das strukturierte semantische Wissen 310 zum Abgleichen von Bildern mit Daten, die mit visuell ähnlichen Bildern (beispielsweise Beschriftung) verknüpft sind, und zudem dazu, Bilder ausfindig zu machen, die zu einer bestimmten Beschriftung eines Satzes von Metadaten (beispielsweise bei einer Suche) passen.
-
Die Bilder 304 und das entsprechende strukturierte semantische Wissen 310 werden sodann an ein Modelltrainingsmodul 312 weitergereicht. Das Modelltrainingsmodul 312 ist derart dargestellt, dass es ein Maschinenlernmodul 314 beinhaltet, das eine Funktionalität darstellt, um das Maschinenlernen (beispielsweise neuronale Netzwerke, faltungstechnische neuronale Netzwerke und dergleichen mehr) einzusetzen, damit das Bildanalysemodell 202 unter Verwendung der Bilder 304 und des strukturierten semantischen Wissens 310 trainiert wird. Das Modell 316 wird dafür trainiert, eine Beziehung (beispielsweise einen visuellen Merkmalsvektor) zwischen Textmerkmalen in dem strukturierten semantischen Wissen 310 mit Bildmerkmalen in den Bildern zu definieren.
-
Das Bildanalysemodul 202 wird sodann von einem Beschriftungserzeuger dafür verwendet, ein Eingabebild 316 zu verarbeiten und ein beschriftetes Bild 318 zu erzeugen. Das beschriftete Bild 318 kann beispielsweise Textauszeichnungen (tags) und Beschreibungen beinhalten und Konzepte des Bildes 108 sogar in Fällen definieren, in denen das Eingabebild 316 überhaupt keinen Text beinhaltet. Anstatt dessen verwendet der Beschriftungserzeuger 130 das Bildanalysemodell 202 zum Erzeugen von geeigneten Textbeschreibungen auf Grundlage einer Analyse des Eingabebildes 316. Das beschriftete Bild 318 wird sodann von den Bilddiensten 320 zur Steuerung bzw. Regelung einer Vielzahl von Funktionalitäten, so beispielsweise für Bildsuchvorgänge, für die Beschriftungs- und Metadatenextraktion, für die Bildkatalogisierung, für Zugänglichkeitsmerkmale und dergleichen mehr, automatisch und ohne Nutzereingriff verwendet.
-
Allgemein impliziert das Bildbeschriftungssystem 301 eine Merkmalsextraktion, gefolgt vom Aufbau einer Beschreibung auf Grundlage der Merkmale. Mehrere verschiedene Modelle und Lösungsansätze können sowohl für die Merkmalsextraktionsoperationen wie auch die Beschreibungserstellungsoperationen, die von dem Bildbeschriftungssystem 301 wiedergegeben werden, eingesetzt werden. Wie vorstehend bemerkt worden ist, kann das Bildbeschriftungssystem 301 auf einem neuronalen Netzwerk und dem Maschinenlernen beruhen. Bei gewissen Implementierungen wird die Merkmalsextraktion unter Verwendung eines faltungstechnischen neuronalen Netzwerkes (CNN) implementiert, woraufhin ein rekurrentes neuronales Netzwerk (RNN) zur Sprachmodellierung und Satzerstellung aufgerufen wird.
-
In diesem Zusammenhang ist 4 ein Diagramm, das allgemein bei 400 Details eines Bildbeschriftungssystems entsprechend einer oder mehreren Implementierungen darstellt. Hierbei stellt das System 401 ein allgemeines Codierer-Decodierer-Netzwerk für ein neuronales Netzwerk auf Grundlage einer Bildbeschriftung dar. Das System beruht auf einem neuronalen Netzwerk und dem Maschinenlernen. Bei einem gegebenen Zielbild 316 werden Merkmalsextraktionstechniken angewendet, um globale Bildkonzepte einzusetzen, die den „Eindruck” des Bildes beschreiben. Ein vortrainiertes faltungstechnisches neuronales Netzwerk (CNN) 402 wird verwendet, um das Bild mit Konzepten 404 zu codieren, die den Eindruck des Bildes als Ganzes angeben. Das CNN erzeugt einen visuellen Merkmalsvektor, der diese „globalen” Konzepte 404 wiedergibt. Information, die im Zusammenhang mit den globalen Bildkonzepten 404 hergeleitet wird, wird sodann in ein Sprachverarbeitungsmodell eingespeist, das wahrscheinlichkeitsbasiert eine beschreibende Beschriftung des Bildes erzeugt. Der visuelle Merkmalsvektor kann sodann beispielsweise in ein rekurrentes neuronales Netzwerk (RNN) 406 eingespeist werden, das dafür ausgelegt ist, Sprachmodellierungs- und Satzerzeugungstechniken zu implementieren. Das RNN 406 ist dafür ausgelegt, iterativ eine Abfolge von zu kombinierenden Wörtern als Beschriftung für das Zielbild auf Grundlage von Wahrscheinlichkeitsverteilungen mit Berechnung entsprechend Gewichtungsfaktoren in mehreren Iterationen vorherzusagen. Wie dargestellt ist, gibt das RNN 406 Beschreibungen 408 in Form von Beschriftungen, Auszeichnungen (tags), Sätzen und anderem Text aus, der mit dem Bild 316 verknüpft ist. Diese erzeugt ein beschriftetes Bild, das im Zusammenhang mit 3 beschrieben wird.
-
4 stellt des Weiteren Verbesserungen 410 dar, die in Verbindung mit dem allgemeinen System 401 zum Einsatz kommen können. Insbesondere kann ein Beschriftungserzeuger 130 Daten schwacher Überwachung 204, Wortvektordarstellungen 206 und/oder ein Modell semantischer Aufmerksamkeit 208 als Verbesserungen 410 bei der Bildbeschriftung, die von dem allgemeinen System 401 bereitgestellt wird, einsetzen. Jede der Verbesserungen 410 kann auf individueller Basis zur Ergänzung einer Beschriftung des allgemeinen Systems 401 verwendet werden. Darüber hinaus kann eine beliebige Kombination aus mehreren Verbesserungen 410 eingesetzt werden. Details im Zusammenhang mit den Verbesserungen 410 an dem allgemeinen System 401 werden nachstehend beschrieben.
-
Schwache Überwachung
-
Wie vorstehend ausgeführt worden ist, können Daten schwacher Überwachung 204 im Zusammenhang mit einem Zielbild bezogen und dafür genutzt werden, Detailinformation bereitzustellen, die globale Bildkonzepte 404, die zur Bildbeschriftung hergeleitet werden, ergänzt. Insbesondere werden die Daten schwacher Überwachung 204 aus Quellen von schwach kommentierten Bildern gesammelt, so beispielsweise von sozialen Netzwerkseiten, Seiten zum Bildersharing und anderen Onlinebeständen für Bilder. Eine oder mehrere Quellen können auf einer Bildbeschriftung bei verschiedenen Szenarios beruhen. Bilder, die in derartige Quellen hochgeladen worden sind, sind üblicherweise mit Auszeichnungen (tags), Beschreibungen und anderen Textdaten, die von Nutzern hinzugefügt werden, verknüpft. Diese Art von Textdaten, die von Nutzern hinzugefügt werden, werden als „schwach überwacht” betrachtet, da Nutzer „schwammige bzw. unpräzise” Begriffe aufnehmen können, die für den Bildcontent und globale von dem Bild vermittelte Konzepte irrelevant oder nur am Rande relevant sind, wobei die Daten vom Dienstanbieter nicht verfeinert oder gesteuert bzw. geregelt bzw. kontrolliert werden. Die schwachen Kommentierungen stellen detaillierte Information im Zusammenhang mit Bildern auf einer tieferen Verständnisebene bereit, als dies durch die herkömmlichen Bilderkennungs- und Bildextraktionslösungsansätze erreichbar ist. Infolgedessen beruhen die schwachen Kommentierungen darauf, eine Sammlung von Schlüsselwörtern zur Angabe von Bilddetails auf niedriger Ebene (beispielsweise Objekte, Attribute, Bereiche, umgangssprachliche Semantik) zu erzeugen, die zum Erweitern des Wörterbuchs/Vokabulars verwendet werden kann, das zur Bildanalyse und Ergänzung von globalen Bildkonzepten 404, die aus der Bildbeschriftung hergeleitet sind, verwendet wird.
-
Bei dem allgemeinen Bildbeschriftungssystem 401, das vorstehend beschrieben worden ist, wird ein vortrainiertes faltungstechnisches neuronales Netzwerk (CNN) zum Codieren des Bildes verwendet. Das Ergebnis ist ein visueller Merkmalsvektor, der in ein rekurrentes neuronales Netzwerk (RNN) zur Satzerzeugung eingespeist wird. Es werden Trainingsdaten zum Trainieren der Einbettungsfunktion, des rekurrenten neuronalen Netzwerkes und optional des faltungstechnischen neuronalen Netzwerkes verwendet. Das RNN ist insbesondere für sequenzielle Daten ausgelegt. In dem RNN verfügt jeder Eingabeknoten über einen verborgenen Zustand hi, wobei für jeden verborgenen Zustand hi = f(xi, hi-1) gilt, wobei f(•) die Aktivierungsfunktion ist, so beispielsweise eine logistische Funktion oder eine tanh-Funktion. Mit anderen Worten, der Zustand für jeden Knoten hi hängt von der Aktivierungsfunktion ab, die auf Grundlage des eingegebenen xi und des Zustandes für den vorhergehenden Knoten hi-1 berechnet wird. Auf diese Weise wird das RNN verwendet, um iterativ den verborgenen Zustand für jeden Eingabeknoten zu berechnen. Darüber hinaus verbreiten die verborgenen Zustände die Interaktionen vom Beginn der Abfolgen bzw. Sequenzen zu den Endknoten in jener Sequenz. Das Bildbeschriftungssystem 401 kann mit mehreren verschiedenen RNN-Architekturen integriert werden. Details im Zusammenhang mit RNN-Architekturen sind hier weggelassen, da Implementierungen von verschiedenen Architekturen von einem Fachmann auf dem einschlägigen Gebiet erschlossen werden können und die hier beschriebenen erfinderischen Konzepte nicht von der speziellen eingesetzten RNN-Architektur abhängen.
-
In diesem Zusammenhang zeigt 5 allgemein bei 500 ein Diagramm zur Darstellung eines Systems zur Bildbeschriftung mit schwacher Überwachung. Insbesondere zeigt 5 ein Szenario, bei dem das RNN 406 in dem allgemeinen System 401 von 4 derart angewendet wird, dass es auf Daten schwacher Überwachung 204 zurückgreift. Die Daten schwacher Überwachung 204 können aus verschiedenen Bildquellen 124, wie vorstehend und nachstehend noch erläutert wird, bezogen werden. Insbesondere kann ein Prozess der Merkmalsextraktion 502 eingesetzt werden, um Bilder zu erkennen, die zu einem Zielbild aus wenigstens einer der Bildquellen 124 ähnlich sind. Bilder, die als zu einem Zielbild ähnlich erkannt worden sind, werden weiterverarbeitet, um Schlüsselwörter aus schwachen Kommentierungen, die mit den ähnlichen Bildern verknüpft sind, zu extrahieren. Entsprechend stellt die Merkmalsextraktion 502 eine funktionelle Anwendung zur Herleitung von Daten schwacher Überwachung 204 in Form einer Sammlung von Schlüsselwörtern zur Angabe von Bilddetails auf niedriger Ebene, wie vorstehend erläutert worden ist, dar. Die Daten schwacher Überwachung 204 werden sodann dem RNN 406 angeboten, um die Bildbeschriftungsanalyse gemäß Darstellung in 5 zu informieren. Bei einem Lösungsansatz wird dem RNN eine gefilterte Liste von Schlüsselwörtern, die aus den schwach kommentierten Bildern hergeleitet werden, angeboten. Die Liste kann mittels Punktbewerten und Rangbewerten der Schlüsselwortsammlung entsprechend Relevanzkriterien und Auswählen einer Anzahl von am besten rangbewerteten Schlüsselwörtern derart, dass diese in der gefilterten Liste beinhaltet sind, erzeugt werden. Die gefilterte Liste kann auf Grundlage der Häufigkeit, von Wahrscheinlichkeitspunktbewertungen, Gewichtungsfaktoren oder anderen Relevanzkriterien gefiltert werden. Bei gewissen Implementierungen kann die gesamte Sammlung von Schlüsselwörtern zur Verwendung in dem RNN angeboten werden (beispielsweise eine ungefilterte Liste).
-
Die Liste von Schlüsselwörtern ist dafür konfiguriert, Schlüsselwortgewichtungen 504 mit jedem Wort oder jeder Wendung bzw. jedem Satz zu verknüpfen. Die Schlüsselwortgewichtungen 504 geben Punktbewertungen oder Wahrscheinlichkeitsverteilungen wieder, die innerhalb des RNN zur Vorhersage von Wortabfolgen der entsprechenden Beschriftung verwendet werden können. Wie in 5 dargestellt ist, kann die Liste von besten Schlüsselwörtern in jeden Knoten des RNN als zusätzliche Daten, die globale Konzepte ergänzen, eingespeist werden. In diesem Zusammenhang erweitert die Schlüsselwortliste, die für ein Zielbild erzeugt worden ist, das Vokabular, das zum Herleiten einer Beschriftung für das Zielbild erzeugt wird. Zusätzlich modulieren die Schlüsselwortgewichtungen 504 Gewichtungsfaktoren, die von dem RNN zur Sprachmodellierung und Satzerstellung angewendet werden. Infolgedessen sind die Schlüsselwortgewichtungen 504 bei Änderungen von Wortwahrscheinlichkeiten effektiv, die für eine wahrscheinlichkeitsbasierte Kategorisierung mit Implementierung durch das RNN unter Bevorzugung von Schlüsselwörtern zur Angabe von Bilddetails auf niedriger Ebene verwendet werden.
-
Der Effekt der Schlüsselwortgewichtungen 504 für die Daten schwacher Überwachung 204 kann allgemein in der Form hi = f(xi, hi-1) für das vorbeschriebene RNN ausgedrückt werden. Im Allgemeinen besteht bei einer gegebenen Sammlung von Schlüsselwörtern Ki = {k1, k2, ..., kk} für jedes Bild vi das Ziel darin, wie Ki zur Erzeugung von Beschriftungen für vi eingesetzt werden kann. Insbesondere wird ein Modell aufgebaut, um die Schlüsselwörter sowohl für das Trainieren wie auch Testen von Phasen zu verwenden. Zu diesem Zweck werden Schlüsselwörter für jedes Bild extrahiert und als Sammlung von Schlüsselwörtern aggregiert bzw. angehäuft. Sodann wird an jeden Eingabeknoten in dem RNN eine zusätzliche Einbettungsinformation für die Schlüsselwörter entsprechend der Gleichung Ke = max(WkK + b) angehängt. Hierbei ist Ke die Schlüsselwortliste für den Knoten, und Wk ist die Einbettungsmatrix für die Schlüsselwörter zur Steuerung bzw. Regelung der Schlüsselwortgewichtungen 504. Für jedes eingegebene Wort wi wird Ke an jeder Position des eingegebenen rekurrenten neuronalen Netzwerkes gemäß Darstellung in 5 angehängt. Entsprechend kann das RNN, das zum Einsetzen einer schwachen Überwachung verwendet wird, als hi = f(xi, hi-1, Ke) ausgedrückt werden. In diesem Ausdruck ist die Aktivierungsfunktion f(•) zudem von der eingebetteten Wortliste Ke und den entsprechenden Schlüsselwortgewichtungen 504 abhängig.
-
Bei dem vorbeschriebenen Beispiel wird eine max-Operation eingesetzt, um die Merkmale aus der Gruppe von Kandidatenschlüsselwörtern zu ermitteln. Andere Operationen sind ebenfalls einbezogen, so beispielsweise das Summieren, das die Gesamtanzahl von Parametern in der Eingabeschicht erhöhen kann. Gleichwohl kann bei der max-Operation die Anzahl von Schlüsselwörtern, die für jedes Bild ausgewählt werden, verschieden sein, und es kann eine große Anzahl von potenziellen Schlüsselwörtern in der Analyse betrachtet werden, ohne eine beträchtliche Anzahl von Parametern zu der Eingabeschicht hinzuzufügen.
-
Wie ausgeführt worden ist, können die verschiedenen Bildquellen 124 dafür verwendet werden, Daten schwacher Überwachung zu beziehen. Bei gewissen Implementierungen beinhalten die Bildquellen 124 verschiedene über ein Netzwerk zugängliche Onlinebestände von Bildern, so beispielsweise von Seiten sozialer Netzwerke, Seiten zum Bildersharing und gepflegten Datenbanken/Diensten für Bilder. Nutzer nutzen heutzutage oftmals Onlinebestände, um Bilder und Multimediacontent zu teilen und auf Bildcontent zuzugreifen. Bilder, die aus Onlinequellen verfügbar sind, beinhalten typischerweise Auszeichnungen (tags) oder Kurzbeschreibungen, die erweitert werden können, um schwach überwachtes Wissen zur Verwendung bei der Beschriftung zu beziehen.
-
Eine Sammlung von Trainingsbildern, die zum Trainieren des Bildbeschriftungssystems (beispielsweise zum Trainieren des Beschriftungserzeugers) verwendet wird, kann eine zusätzliche oder alternative Quelle von Daten schwacher Überwachung 204 bereitstellen. Bei diesem Lösungsansatz beinhalten die Trainingsdaten eine Datenbank von Bildern mit entsprechenden Beschriftungen, die zum Trainieren von Klassifikatoren für das Beschriftungsmodell verwendet werden. Die Trainingsbilddatenbank kann auf eine Quelle zum Ausfindigmachen von betroffenen Bildern, die zueinander ähnlich sind, zurückgreifen. Als Nächstes werden die Beschriftungen für betroffene Bilder als schwach überwachter Text zur Bildbeschriftung aggregiert bzw. angehäuft. Passt ein Zielbild zu einer Sammlung von betroffenen Bildern, so greift man auf die Beschriftungen für die betroffenen Bilder als Daten schwacher Überwachung 204 zur Beschriftung des Zielbildes zurück.
-
Bei gewissen Implementierungen können wenigstens einige Daten schwacher Überwachung 204 direkt aus der Bildanalyse hergeleitet werden. Zu diesem Zweck werden verschiedene Konzept- oder Attributdetektoren trainiert, um die Arten von Bilddetails auf niedriger Ebene, die von den schwach kommentierten Bildern bereitgestellt werden, zu erkennen. Die relativ neue Entwicklung von tiefen neuronalen Netzwerken hat eine wesentliche Verbesserung bei der Objekterkennung innerhalb von Bildern mit sich gebracht. Entsprechend wird es möglich, Bildklassifikatoren zu trainieren, um einige Typen von Bilddetails auf niedriger Ebene zu erkennen, so beispielsweise spezifische Objekte, Bereichsunterschiede, Bildattribute und dergleichen. Anstelle der direkten Verwendung von derartigen Bilddetails zur Erzeugung von Kandidatenbeschriftungen werden die detektierten Attribute oder Konzepte in das Bildbeschriftungssystem als Daten schwacher Überwachung 204 eingespeist, um die Bildbeschriftung auf die hier beschriebene Weise zu informieren.
-
6 ist ein Flussdiagramm für eine exemplarische Prozedur 600, bei der Daten schwacher Überwachung zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen eingesetzt werden. Ein Zielbild wird zur Beschriftungsanalyse bezogen (Block 602). Ein Bilddienst 120 kann beispielsweise einen Beschriftungserzeuger 130, der hier beschrieben wird, implementieren. Der Bilddienst 120 kann eine durchsuchbare Bilddatenbank 122 bereitstellen, die über eine Such-API 128 zugänglich ist. Der Beschriftungserzeuger 130 ist dafür konfiguriert, eine Beschriftungsanalyse an Bildern durchzuführen und automatisch Beschriftungen für Bilder unter Verwendung von verschiedenen der hier beschriebenen Techniken zu erzeugen. Die beschrifteten Bilder 318, die von dem Beschriftungserzeuger 130 erzeugt werden, können auf verschiedene Weisen eingesetzt werden. Die Beschriftungen können Bildsuchvorgänge, die über die Such-API 128 durchgeführt werden, unter Verwendung von auf natürlicher Sprache beruhenden Abfragen erleichtern. Darüber hinaus können die Beschriftungen die Zugänglichkeit für Menschen mit beeinträchtigtem Sehsinn erleichtern, indem die Beschriftungen in akustische Beschreibungen zur Darstellung des Bildcontents für die Nutzer umgewandelt werden.
-
Zur Erzeugung der Bildbeschriftungen wird die Merkmalsextraktion bei dem Zielbild eingesetzt, um globale Konzepte zu erzeugen, die dem Zielbild entsprechen (Block 604). Verschiedene Typen von Merkmalsextraktionsoperationen sind einbezogen. Im Allgemeinen wird die Anfangsmerkmalsextraktion angewendet, um globale Konzepte 404 herzuleiten, die den Gesamteindruck des Bildes beschreiben. Die Anfangsmerkmalsextraktion kann über ein CNN 402, wie vorstehend beschrieben worden ist, durchgeführt werden, obwohl auch andere Techniken zum Herleiten von globalen Bildkonzepten 404 einbezogen werden können. Die hergeleiteten Konzepte 404 können kombiniert werden und dadurch Kandidatenbeschriftungen bilden, die als Ausgangspunkt für eine weitere Verfeinerung und Auswahl einer Beschriftung verwendet werden. Diese weitere Verfeinerung kann zusätzlich auf den hier beschriebenen Daten schwacher Überwachung 204, wie hier beschrieben wird, beruhen.
-
Insbesondere wird das Zielbild mit Bildern aus einer Quelle von schwach kommentierten Bildern verglichen, um visuell ähnliche Bilder zu identifizieren (Block 606). Verschiedene Quellen von schwach kommentierten Bildern sind einbezogen, für die vorstehend Beispiele angegeben worden sind. Die hier beschriebene Analyse beruht wenigstens auf einer Quelle, wobei jedoch bei einigen Szenarios auch mehrere Quellen Verwendung finden können. Das Vergleichen impliziert das Verwenden von Merkmalsextraktionstechniken, um Bilder ausfindig zu machen, die zu dem Zielbild ähnliche Merkmale aufweisen. Kommentierungen, die mit den ähnlichen Bildern verknüpft sind, werden als relevant im Zusammenhang mit der Beschriftung des Zielbildes betrachtet.
-
Entsprechend wird eine Sammlung von Schlüsselwörtern für das Zielbild aufgebaut, indem die Schlüsselwörter aus den visuell ähnlichen Bildern extrahiert (Block 608) und die Sammlung von Schlüsselwörtern zur Beschriftungserzeugung zusammen mit den globalen Konzepten angeboten wird (Block 610). Sodann wird eine Beschriftung für das Zielbild unter Verwendung der Sammlung von Schlüsselwörtern erzeugt, um Wortgewichtungen, die für die Satzerstellung angewendet werden, zu modulieren (Block 612). Hierbei wird eine Liste von Schlüsselwörtern, die aus schwach kommentierten Bildern hergeleitet sind, bestimmt und als Daten schwacher Überwachung 204 angeboten, um die Bildbeschriftungsanalyse auf vorstehend beschriebene Weise zu informieren. Schlüsselwortgewichtungen 504, die durch die Daten schwacher Überwachung 204 angegeben sind, sind dafür effektiv, Gewichtungsfaktoren zu modulieren, die für die Sprachmodellierung und Satzerzeugung angewendet werden. Die Sprachmodellierung und Satzerstellung zur Erzeugung von Beschriftungen kann über ein RNN 406, wie vorstehend beschrieben worden ist, implementiert sein, obwohl auch andere Bildbeschriftungsalgorithmen und Techniken einbezogen sind. In jedem Fall werden die Gewichtungen, die durch die Daten schwacher Überwachung 204 wiedergegeben werden, zur Bildbeschriftung angewendet, um Wortwahrscheinlichkeiten bei einer wahrscheinlichkeitsbasierten Kategorisierung entsprechend zu ändern. Infolgedessen werden Schlüsselwörter zur Angabe von Bilddetails auf niedriger Ebene, die aus schwachen Kommentierungen hergeleitet sind, bei der Beschriftungsanalyse entsprechend Gewichtungsfaktoren, die für die Schlüsselwörter erstellt sind, betrachtet.
-
Wortvektordarstellungen
-
Die Wortvektordarstellungen 206 sind ein zusätzliches Merkmal, das dafür verwendet werden kann, das allgemeine Bildbeschriftungssystem 401 zu verbessern. Die Wortvektordarstellungen 206 können einzeln oder in Kombinationen mit schwacher Überwachung, wie vorstehend beschrieben worden ist, und/oder semantischer Aufmerksamkeit, wie im nachfolgenden Abschnitt erläutert wird, verwendet werden. Kurzum, anstelle dessen, dass Ergebnisse der Beschriftungsanalyse direkt als Wörter oder Abfolge von Wörtern (beispielsweise Beschriftung oder Satz) ausgegeben werden, ist das System 401 dafür ausgelegt, Punkte in einem semantischen Wortvektorraum auszugeben. Diese Punkte bilden die Wortvektordarstellungen 206, die Abstandswerte im Kontext mit dem semantischen Wortvektorraum wiedergeben. Bei diesem Lösungsansatz werden Wörter in einen Vektorraum abgebildet, und es werden die Ergebnisse der Beschriftungsanalyse als Punkte in dem Vektorraum ausgedrückt, die die Semantiken zwischen Wörtern erfassen. In dem Vektorraum weisen ähnliche Konzepte bei den Wortvektordarstellungen der Konzepte kleine Abstandswerte auf.
-
Im Gegensatz hierzu sind herkömmliche Lösungsansätze dafür ausgelegt, vorhergesagte Wörter oder Abfolgen auszugeben. Das vorbeschriebene RNN 406 ist beispielsweise üblicherweise dafür ausgelegt, Wahrscheinlichkeitsverteilungen an jedem Knoten über ein festes Wörterbuch/Vokabular zu bestimmen. Wörter werden auf Grundlage der berechneten Verteilung punktbewertet und rangbewertet. Ein wahrscheinlichstes Wort wird sodann als Ausgabe für jeden Knoten auf Grundlage der Eingabe in den Knoten und des aktuellen Zustandes ausgewählt. Der Prozess macht iterativ die beste Beschriftung oder die besten Beschriftungen auf Grundlage von mehreren Iterationen ausfindig. Hierbei löst die Strategie, die durch eine von dem RNN verwendete Objektivfunktion wiedergegeben wird, das Klassifikationsproblem bei jedem Wort entsprechend einer Klasse. Die Wahrscheinlichkeitsverteilungen werden sodann für wahrscheinlichkeitsbasierte Klassifizierungen relativ zu dem festen Wörterbuch/Vokabular verwendet. Infolgedessen müssen Wörter in der Beschriftung in dem Wörterbuch enthalten sein, die Größe des Wörterbuches ist im Allgemeinen derart gewählt, dass sie verschiedene Erstellungen berücksichtigt, und die Analyse muss gänzlich wiederholt werden, wenn das Wörterbuch geändert wird.
-
Demgegenüber ist bei den Wortvektordarstellungen 206 die Ausgabe der Analyse ein Punkt oder Punkte in dem Vektorraum. Die Punkte sind nicht mit bestimmten Wörtern oder einem einzelnen Wörterbuch verknüpft. Ein Nachverarbeitungsschritt wird eingesetzt, um die Punkte auf Wörter abzubilden und die Wortvektordarstellungen 206 in Beschriftungen umzuwandeln. Entsprechend wird eine Umwandlung hin zu einer späteren Phase bei dem Prozess verzögert. Ein Ergebnis dessen besteht darin, dass das Wörterbuch auch spät im Prozess geändert werden kann, um eine andere Sprache auszuwählen, einen anderen Wortumfang oder eine andere Anzahl von Wörtern zu verwenden, neue Begriffe einzuführen und dergleichen mehr. Zusätzlich können die Wortvektordarstellungen 206 eingespart werden, und es müssen Schritte, die vor der Nachverarbeitung beendet sind, nicht wiederholt werden, wenn eine Änderung an dem Wörterbuch vorgenommen wird.
-
7 zeigt bei 700 ein exemplarisches Diagramm, das allgemein das Konzept von Wortvektordarstellungen zur Bildbeschriftung darstellt. Insbesondere zeigt 7 einen semantischen Wortvektorraum 702, der Semantiken zwischen Wörtern erfasst. Bei diesem Beispiel weist der semantische Wortvektorraum 702 Achsen in einem mehrdimensionalen Raum auf, die verschiedenen Kombinationen von Wörtern oder Sätzen entsprechen. In diesem Zusammenhang stellt ein Wortvektor 704 Abstandswerte zwischen Wörtern in dem semantischen Wortvektorraum 702 dar. Bei gegebenen bestimmten Zustandsdaten für ein Analyseproblem und einem ausgewählten Wörterbuch kann der Wortvektor 704 auf das nächstliegende Wort oder die nächstliegenden Wörter abgebildet werden. Dieser Lösungsansatz bietet spät im Prozess Flexibilität beim Abbilden des Wortvektors 704 auf verschiedene Wörter in Abhängigkeit von kontextbezogener Information.
-
8 ist ein Flussdiagramm für eine exemplarische Prozedur 800, bei der Wortvektordarstellungen zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen eingesetzt werden. Ein Zielbild wird zur Beschriftungsanalyse bezogen (Block 802), und es wird eine Merkmalsextraktion an dem Zielbild durchgeführt, um Attribute entsprechend dem Bild zu erzeugen (Block 804). Ein Bilddienst 102 kann beispielsweise einen Beschriftungserzeuger 103 implementieren, der dafür konfiguriert ist, Bilder, wie vorstehend beschrieben worden ist, zu verarbeiten. Darüber hinaus sind verschiedene Typen von Merkmalsextraktionsoperationen einbezogen, um Merkmale, Konzepte, Objekte, Bereiche und andere Attribute, die mit dem Zielbild verknüpft sind, zu detektieren.
-
Die Attribute werden einem Beschriftungserzeuger angeboten, um eine Beschriftungserzeugung zu initiieren (Block 806). Die Attribute können beispielsweise verwendet werden, um Schlüsselwörter herzuleiten, die dem Bildanalysemodell 202, das durch den Beschriftungserzeuger 103 zur Bildbeschriftung implementiert ist, angeboten werden. Die Schlüsselwörter werden verwendet, um verschiedene Kombinationen von Schlüsselwörtern als potenzielle Beschriftungskandidaten zu erstellen und zu bewerten. Als Ergebnis der Analyse wird ein Wortvektor in einem semantischen Wortvektorraum zur Angabe von semantischen Beziehungswörtern in Sätzen, die als Kombination der Attribute gebildet werden, ausgegeben (Block 808). Das Bildanalysemodell 202 kann beispielsweise dafür ausgelegt sein, die Wortvektordarstellungen 206 als Zwischenergebnisse der Beschriftungsanalyse auszugeben. Die Wortvektordarstellungen 206 können Punkten in einem semantischen Wortvektorraum 702 entsprechen, die nicht auf bestimmte Wörter oder ein bestimmtes Wörterbuch abgebildet werden. Eine Objektivfunktion, die durch das RNN implementiert ist, kann dafür eingesetzt werden, Abstände in dem semantischen Wortvektorraum 702 anstelle von Wahrscheinlichkeitsverteilungen für Wortabfolgen einzubeziehen. Einige Details im Zusammenhang mit der Verwendung eines L-2-Abstandes und einer negativen Probenentnahme (sampling) zur Modifizierung der Objektivfunktion bei der Beschriftungsanalyse werden nachstehend erläutert.
-
Anschließend wird der Wortvektor in eine Beschriftung für das Zielbild umgewandelt (Block 810). Es ist wichtig, dass die Wortvektorumwandlung bis zu einer Nachverarbeitungsoperation verzögert wird, die im Gefolge von Operationen des RNN stattfindet, um die Wortvektordarstellungen 206 herzuleiten. Mit anderen Worten, die Nachverarbeitungsumwandlung wird angewendet, um das von dem RNN Erzeugte auszugeben. Die Wortvektorumwandlung erfolgt im Zusammenhang mit einem Wörterbuch/Vokabular, das außerhalb der Beschriftungsanalyse, die über das RNN durchgeführt wird, ausgewählt wird. Infolgedessen ist die Beschriftungsanalyse zur Erzeugung der Wortvektordarstellungen 206 nicht von einem bestimmten Wörterbuch abhängig.
-
Wie bereits bemerkt worden ist, können Implementierungen unter Verwendung des semantischen Wortvektorraumes unter Verwendung eines Abstandes und/oder einer negativen Probenentnahme (sampling) implementiert werden, um die Objektivfunktion zur Beschriftungsanalyse zu modifizieren. Mit Blick auf den L-2-Abstand wird die typische Objektivfunktion als Wahrscheinlichkeitsklassifizierungsproblem erstellt. Die Funktion kann beispielsweise dafür ausgelegt sein, ein log-Wahrscheinlichkeitsobjektiv für eine Wortabfolge bei gegebener Knoteneingabe und aktuellem Zustand zu lösen. Ein derartiges log-Wahrscheinlichkeitsobjektiv kann folgendermaßen ausgedrückt werden:
logp(W/V) = Σtlogp(wt|V, w0, w1, ..., wT) Um die Wortvektordarstellungen
206 zu ermöglichen, ist die Objektivfunktion als Kostenfunktion ausgelegt, die vom Abstand in dem semantischen Wortvektorraum abhängt. Die angepasste Objektivfunktion kann beispielsweise folgendermaßen ausgedrückt werden:
Hierbei bezeichnet p
t den Index des vorhergesagten Wortes. Bei dieser Objektivfunktion kann ein sehr großes Vokabular verwendet werden. Darüber hinaus können Merkmale für jedes Wort unter Verwendung von einigen nichtüberwachten Merkmalen bezüglich der angepassten Objektivfunktion initiiert werden, was die Anzahl der implizierten Merkmale beträchtlich verringert, da die Anzahl von Parametern mit der Dimensionalität der Merkmale anstelle der Größe des Vokabulars zusammenhängt (Gesamtzahl von Klassen bei einer typischen Objektivfunktion).
-
Der vorbeschriebene Lösungsansatz mit dem L-2-Abstand betrachtet das aktuelle Wort in der Objektivfunktion an jedem Knoten. Für jeden Knoten sind jedoch auch zahlreiche negative Proben (samples) (alle anderen Wörter) vorhanden. Die Beschriftungsanalyse kann des Weiteren dafür ausgelegt sein, eine Analyse mit negativer Probenentnahme, die die negativen Proben berücksichtigt, zu beinhalten. Die negative Probenentnahme (sampling) speist die Kosten in die Objektivfunktion ein, die den Abstand zu den negativen Proben berücksichtigt. Bei der negativen Probenentnahme (sampling) ist die Objektivfunktion dafür ausgelegt, den Abstand zwischen verwandten Wörtern/Vektoren zu minimieren und den Abstand zu negativen Proben zu maximieren. Bei einer Implementierung werden für jeden Knoten N Wörter, die von dem Zielwort verschieden sind, beliebig ausgewählt, und es wird ein Verlustfaktor für die Objektivfunktion folgendermaßen definiert: log(1 + exp(–wiVhi-1) + Σnlog(1 + exp(wnVhi-1) Bei diesem Ausdruck bezeichnet wi die Einbettung für jedes Zielwort an der i-ten Position, wn bezeichnet die n-te beliebig gewählte negative Probe für das i-te Zielwort, und hi-1 ist die verborgene Reaktion an der Position i – 1. Daher steigert die negative Probenentnahme die Kosten für Zielwörter, wenn die Zielwörter nahe an beliebig ausgewählten negativen Probenentnahmen sind.
-
Semantische Aufmerksamkeit
-
Das Modell semantischer Aufmerksamkeit 208 ist ein weiteres zusätzliches Merkmal, das dafür verwendet werden kann, das allgemeine Bildbeschriftungssystem 401 zu verbessern. Das Modell semantischer Aufmerksamkeit 208 kann einzeln oder in Kombinationen mit einer schwachen Überwachung und/oder Wortvektordarstellungen, die vorstehend beschrieben worden sind, verwendet werden. Im Allgemeinen ist das Modell semantischer Aufmerksamkeit 208 zur Auswahl von Schlüsselwörtern und Konzepten für ein Korpus von verfügbaren Begriffen implementiert. Die vorstehend erläuterten Techniken können denselben Satz von Schlüsselwörtern oder Merkmalen an jedem Knoten in dem rekurrenten neuronalen Netzwerk einsetzen. Dieselbe Schlüsselwortliste, die für die Daten schwacher Überwachung 202 hergeleitet ist, kann jedem Knoten in dem RNN 406 angeboten werden. Gleichwohl kann sich die Relevanz von verschiedenen Wörtern/Konzepten an verschiedenen Punkten bei der Analyse ändern. Das Modell semantischer Aufmerksamkeit 208 stellt einen Mechanismus bereit, um verschiedene Konzepte, Schlüsselwörter oder Überwachungsinformationen zur Erzeugung des nächsten Wortes in Abhängigkeit vom Kontext auszuwählen.
-
Allgemein bedeutet dies, dass das Modell semantischer Aufmerksamkeit 208 dafür ausgelegt ist, Kandidatenschlüsselwörter auf Grundlage eines Kontextes dem Rang nach zu bewerten und entsprechende Aufmerksamkeitsgewichtungen zu berechnen, die in das RNN eingespeist werden. Zustandsinformation, die an jedem Knoten in dem RNN berechnet wird, wird zurück in das Modell semantischer Aufmerksamkeit 208 eingespeist, und es werden die Kandidatenschlüsselwörter entsprechend dem aktuellen Kontext für die nächste Iteration erneut rangbewertet. Infolgedessen ändern sich die bestimmten Schlüsselwörter und Gewichtungen, die für jeden Knoten in dem RNN verwendet werden, wenn das RNN einen Übergang erfährt. Im Ergebnis berücksichtigt das Bildbeschriftungsmodell die relevantesten Schlüsselwörter bei jeder Iteration. Unter Verwendung des Modells semantischer Aufmerksamkeit 208 zur Bildbeschriftung werden komplexere Beschriftungen ermöglicht, und es wird die Genauigkeit der erzeugten Beschriftungen verbessert. Weitere Details im Zusammenhang mit dem Modell semantischer Aufmerksamkeit zur Bildbeschriftung werden in der nachfolgenden Diskussion von 9 bis 11 bereitgestellt.
-
In einem gewissen Zusammenhang sind zwei allgemeine Paradigmen bei bestehenden Lösungsansätzen zur Bildbeschriftung vorhanden, nämlich vom Allgemeinen zum Speziellen (top-down) und vom Speziellen zum Allgemeinen (bottom-up). Das vom Allgemeinen zum Speziellen (top-down) gehende Paradigma beginnt mit einem „Eindruck” eines Bildes und wandelt diesen in Wörter um, während das vom Speziellen zum Allgemeinen (bottom-up) gehende Paradigma zunächst auf Wörter zur Beschreibung von verschiedenen Aspekten eines Bildes zurückgreift und diese sodann kombiniert. Es werden bei beiden Paradigmen Sprachmodelle zur Bildung von zusammenhängenden bzw. kohärenten Sätzen eingesetzt. Der Stand der Technik ist das vom Allgemeinen zum Speziellen (top-down) gehende Paradigma, bei dem eine End-to-End-Formulierung von einem Bild zu einem Satz auf Grundlage von rekurrenten neuronalen Netzwerken vorhanden ist und alle Parameter des rekurrenten Netzwerkes aus Trainingsdaten gelernt werden können. Eine der Beschränkungen des vom Allgemeinen zum Speziellen (top-down) gehenden Paradigmas besteht darin, dass dieses kaum auf feine Details eingehen kann, die bei der Beschreibung des Bildes gegebenenfalls wichtig sind. Vom Speziellen zum Allgemeinen (bottom-up) gehende Lösungsansätze leiden nicht an diesem Problem, da sie frei darin sind, bei beliebiger Bildauflösung zu arbeiten. Sie leiden jedoch an anderen Problemen, so beispielsweise dem Fehlen einer End-to-End-Formulierung für den Prozess, der von einzelnen Aspekten zu Sätzen übergeht.
-
Im Sinne des Vorliegenden bezeichnet die semantische Aufmerksamkeit für die Bildbeschriftung die Fähigkeit, eine detaillierte und kohärente bzw. zusammenhängende Beschreibung von semantisch wichtigen Objekten, die an einem anderen Punkt bei der Beschriftungsanalyse relevant sind, bereitzustellen. Das Modell semantischer Aufmerksamkeit 208, das hier beschrieben wird, kann (1) ein semantisch wichtiges Konzept oder einen von Interesse seienden Bereich in einem Bild berücksichtigen, (2) die relative Stärke der Aufmerksamkeit, die verschiedenen Konzepten zuteil wird, gewichten, und (3) die Aufmerksamkeit zwischen Konzepten dynamisch entsprechend dem Aufgabenstatus umstellen. Insbesondere detektiert das Modell semantischer Aufmerksamkeit 208 semantische Details oder „Attribute” als Kandidaten für die Aufmerksamkeit unter Verwendung eines vom Speziellen zum Allgemeinen (bottom-up) gehenden Lösungsansatzes und setzt eine vom Allgemeinen zum Speziellen (top-down) gehende Komponente zur Anleitung dafür ein, wo und wann die Aufmerksamkeit aktiviert werden sollte. Das Modell beruht auf einem rekurrenten neuronalen Netzwerk (RNN), wie es vorstehend erläutert worden ist. Der Anfangszustand erfasst globale Konzepte aus der vom Allgemeinen zum Speziellen (top-down) gehenden Komponente. Erfährt der RNN-Zustand einen Übergang, so erhält das Modell eine Rückkopplung und eine Interaktion von den vom Speziellen zum Allgemeinen (bottom-up) gehenden Attributen über einen Aufmerksamkeitsmechanismus, der sowohl am Netzwerkzustand wie auch an den Ausgabeknoten durchgesetzt wird. Diese Rückkopplung ermöglicht, dass der Algorithmus nicht nur Wörter genauer vorhersagt, sondern auch zu einer stärker belastbaren Schlussfolgerung des semantischen Grabens zwischen bestehenden Vorhersagen und dem Bildcontent führt. Die Rückkopplung arbeitet dafür, die visuelle Information sowohl bei vom Allgemeinen zum Speziellen (top-down) wie auch bei vom Speziellen zum Allgemeinen (bottom-up) gehenden Lösungsansätzen innerhalb des Systems der rekurrenten neuronalen Netzwerke zu kombinieren.
-
9 ist ein Diagramm, das allgemein bei 900 ein Netzwerk semantischer Aufmerksamkeit zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen darstellt. Wie ausgeführt worden ist, kombiniert das Netzwerk semantischer Aufmerksamkeit die vom Allgemeinen zum Speziellen (top-down) und die vom Speziellen zum Allgemeinen (bottom-up) gehenden Lösungsansätze zur Bildbeschriftung. Bei dem dargestellten Beispiel wird ein Bild 316 als Ziel zur Beschriftungsanalyse dargestellt. Ist das Zielbild 316 gegeben, so wird ein faltungstechnisches neuronales Netzwerk 402 aufgerufen, um ein vom Allgemeinen zum Speziellen (top-down) gehendes visuelles Konzept für das Bild zu extrahieren. Gleichzeitig wird die Merkmalsextraktion 902 dafür angewendet, Bilddetails auf niedriger Ebene (Bereiche, Objekte, Attribute und dergleichen) zu detektieren. Die Merkmalsextraktion 902 kann als Teil desselben faltungstechnischen neuronalen Netzwerkes 402 oder unter Verwendung einer getrennten Extraktionskomponente implementiert sein. Bei gewissen Implementierungen wird die Merkmalsextraktion 902 bei einer Quelle von schwach kommentierten Bildern angewendet, um Daten schwacher Überwachung 204 auf vorstehend beschriebene Weise herzuleiten. Das Ergebnis der Merkmalsextraktion 902 ist ein Satz von Bildattributen 904 (beispielsweise Schlüsselwörter), die Bilddetails auf niedriger Ebene entsprechen. Wie in 9 dargestellt ist, arbeitet das Modell semantischer Aufmerksamkeit 208 dahingehend, das vom Allgemeinen zum Speziellen (top-down) gehende visuelle Konzept mit Details auf niedriger Ebene in einem RNN 406 zur Erzeugung der Bildbeschriftung zu kombinieren. Insbesondere berechnet und steuert bzw. regelt das Modell semantischer Aufmerksamkeit die Aufmerksamkeitsgewichtungen 906 für die Attribute 904 und speist die Aufmerksamkeitsgewichtungen 906 in das RNN bei jeder Iteration ein. Erfährt das RNN einen Übergang, so bezieht das Modell semantischer Aufmerksamkeit 208 eine Rückkopplung 908 im Zusammenhang mit dem aktuellen Zustand und dem Kontext der Beschriftungsanalyse. Diese Rückkopplung 908 wird dafür eingesetzt, die Aufmerksamkeitsgewichtungen für Kandidatenattribute 904 in Bezug auf die Iterationen des rekurrenten neuronalen Netzwerkes zu ändern. Im Ergebnis bewirkt das Modell semantischer Aufmerksamkeit 206, dass das RNN 406 die relevantesten Konzepte für jede Vorhersageiteration berücksichtigt.
-
10 ist ein Flussdiagramm für eine exemplarische Prozedur 1000, bei der ein Modell semantischer Aufmerksamkeit zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen eingesetzt wird. Die Merkmalsextraktion wird auf ein Zielbild angewendet, um Konzepte und Attribute entsprechend dem Zielbild zu erzeugen (Block 1002). Die Merkmalsextraktion kann, wie vorstehend beschrieben worden ist, auf verschiedene Weisen erfolgen. Die Merkmalsextraktion kann auf einem CNN 402, einem Extraktormodul 302 oder anderen geeigneten Komponenten beruhen, die dafür ausgelegt sind, Konzepte und Attribute für ein Bild 316 zu detektieren. Die Konzepte und Attribute werden in ein Beschriftungserzeugungsmodell eingespeist, das dafür ausgelegt ist, iterativ Wörter, die aus den Konzepten und Attributen hergeleitet sind, zur Erstellung einer Beschriftung in mehreren Iterationen zu kombinieren (Block 1004). Sodann wird die Beschriftung entsprechend einem Modell semantischer Aufmerksamkeit erstellt, das dafür konfiguriert ist, Gewichtungen zu modulieren, die Attributen für jede der mehreren Iterationen auf Grundlage der Relevanz für ein Wort, das bei einer vorhergehenden Iteration vorhergesagt worden ist, zugewiesen sind (Block 1004). Ein Netzwerk semantischer Aufmerksamkeit gemäß Erläuterungen im Zusammenhang mit 9 kann beispielsweise zur Bildbeschriftung entsprechend einer oder mehreren Implementierungen eingesetzt werden. Beispiels- und nicht beschränkungshalber kann das Modell semantischer Aufmerksamkeit 208 in Verbindung mit einem RNN 406 arbeiten. Alternativ können andere iterative Techniken zur Sprachmodellierung und Satzerzeugung eingesetzt werden. In jedem Fall bietet das System semantischer Aufmerksamkeit die hier beschriebenen Aufmerksamkeitsgewichtungen 906 an, die zum Steuern bzw. Regeln von wahrscheinlichkeitsbasierten Klassifizierungen innerhalb des Beschriftungserzeugungsmodells verwendet werden. Bei jeder Iteration wird ein Wort in einer Abfolge für die Beschriftung unter Verwendung der Aufmerksamkeitsgewichtungen 906 vorhergesagt, um das Modell auf bestimmte Konzepte und Attribute zu fokussieren, die für jene Iteration am meisten relevant sind. Die Aufmerksamkeitsgewichtungen 906 werden erneut bewertet und für jeden Durchlauf angepasst.
-
11 ist ein Diagramm, das bei 1100 allgemein Details eines Systems semantischer Aufmerksamkeit entsprechend einer oder mehreren Implementierungen darstellt. Insbesondere zeigt 11 ein exemplarisches Bildbeschriftungssystem, das sowohl ein Eingabeaufmerksamkeitsmodell 1102, das mit ϕ bezeichnet ist, wie auch ein Ausgabeaufmerksamkeitsmodell 1104, das mit φ bezeichnet ist, verwendet, wovon Details nachstehend beschrieben werden. In dem System werden Attribute 904 für ein Bild 316 hergeleitet. Darüber hinaus wird ein CNN 402 dafür eingesetzt, visuelle Konzepte für das Bild 316, das mit v bezeichnet ist, herzuleiten. Die Attribute 904, die mit entsprechenden Attributgewichtungen 906 gekoppelt sind, sind als Attributdetektionen {Ai} dargestellt. Die visuellen Konzepte v und die Attributdetektionen {Ai} werden in das RNN (gestrichelte Pfeile) eingespeist und durch eine Rückkopplungsschleife 908 miteinander gemischt. Innerhalb des Systems wird die Aufmerksamkeit für Attribute sowohl durch das Eingabeaufmerksamkeitsmodell 1102 (ϕ) wie auch das Ausgabeaufmerksamkeitsmodell 1104 (φ) durchgesetzt.
-
Entsprechend werden sowohl vom Allgemeinen zum Speziellen (top-down) wie auch vom Speziellen zum Allgemeinen (bottom-up) gehende Merkmale aus dem Eingabebild bezogen. Bei einer Implementierung werden Zwischenfüller- bzw. Filterantworten (intermediate filer responses) aus einem Klassifikations-CNN (faltungstechnisches neuronales Netzwerk CNN) verwendet, um das globale visuelle Konzept, das mit v bezeichnet ist, aufzubauen. Zusätzlich arbeitet ein Satz von Attributdetektoren dahingehend, dass er die Liste von visuellen Attributen {Ai}, deren Auftreten in dem Bild am wahrscheinlichsten ist, bezieht. Jedes Attribut Ai entspricht einem Eintrag in dem Vokabularsatz oder Wörterbuch Y.
-
Alle visuellen Konzepte und Merkmale werden in das rekurrente neuronale Netzwerk (RNN) zur Beschriftungserzeugung eingespeist. Entwickelt sich der verborgene Zustand ht ∊ Rn in dem RNN mit der Zeit t, so wird das t-te Wort Yt in der Beschreibung aus dem Wörterbuch Y entsprechend dem Wahrscheinlichkeitsvektor pt ∊ R|Y|, der durch den Zustand ht gesteuert bzw. geregelt wird, entnommen. Das erzeugte Wort Y1 wird in das RNN während des nächsten Zeitschrittes als Teil der Netzwerkeingabe xt+1 ∊ Rm eingespeist, wodurch der Zustandsübergang von ht nach ht+1 betrieben wird. Die visuelle Information aus v und {Ai} dient als externe Anleitung für RNN beim Erzeugen von xt und pt, was durch die Eingabe- und Ausgabemodelle ϕ und φ, wie in 11 dargestellt ist, spezifiziert wird.
-
Im Gegensatz zu bisherigen Lösungsansätzen bei der Bildbeschriftung nutzt und kombiniert das System verschiedene Quellen von visueller Information unter Verwendung der Rückkopplungsschleife 908. Das CNN-Bildkonzept v wird/die CNN-Bildkonzepte v werden als Anfangseingabeknoten x0 verwendet, was erwartungsgemäß dem RNN eine schnelle Übersicht über den Bildcontent verschafft. Sobald der RNN-Zustand initialisiert ist, um den gesamten visuellen Kontext einzuschließen, ist das RNN imstande, spezifische Objekte aus {Ai} für eine aufgabenbezogene Verarbeitung bei den anschließenden Zeitschritten auszuwählen. Insbesondere ist das System durch die nachfolgenden Gleichungen bestimmt: x0 = ϕ0(ν) = Wx,νν ht = f(xt, ht-1) Yt ~ pt = φ(ht, {Ai}) xt = ϕ(Yt-1, {Ai}), t > 0
-
Hierbei wird ein lineares Einbettungsmodell für den Anfangseingabeknoten x0 mit einem Gewichtungsfaktor, der mit Wx,v bezeichnet ist, verwendet. Das Eingabeaufmerksamkeitsmodell ϕ wird auf v bei t = 0 angewendet, um das globale Konzept/die globalen Konzepte einzubetten. ht bezeichnet den Zustand für verborgene Knoten des RNN, die durch die Aktivierungsfunktion f, die vorstehend beschrieben worden ist, bestimmt sind. Das Eingabeaufmerksamkeitsmodell ϕ und das Ausgabeaufmerksamkeitsmodell φ sind dafür ausgelegt, adaptiv bestimmte kognitive Stichwörter (cues) {Ai} auf Grundlage des aktuellen Modellstatus zu berücksichtigen, sodass die extrahierte visuelle Information am relevantesten für die Zerlegung (Parsing) von bestehenden Wörtern und die Vorhersage von zukünftigen Wörtern ist. Das aktuelle Wort Yt und die Wahrscheinlichkeitsverteilung pt hängen beispielsweise von dem Ausgabemodell φ und den Attributgewichtungen gemäß Wiedergabe durch den Ausdruck Yt ~ pt = φ(ht, {Ai}) ab. Auf gleiche Weise wird die Eingabe nach t = 0 durch xt = ϕ(Yt-1, {Ai}) mit t > 0 ausgedrückt und hängt von dem Eingabemodell ϕ, dem Wort mit Vorhersage bei einer vorhergehenden Iteration Yt-1 und den Attributen {Ai} ab. Das RNN arbeitet rekursiv, wobei die berücksichtigten Attribute per se in den Zustand ht rückgespeist und mit der mit v bezeichneten globalen Information integriert werden.
-
Bei dem Eingabeaufmerksamkeitsmodell ϕ für t > 0 wird eine Punktbewertung α i / t jedem detektierten Attribut Ai auf Grundlage seiner Relevanz mit dem vorherigen vorhergesagten Wort Yt-1 zugewiesen. Da sowohl Yt-1 wie auch Ai einem Eintrag in dem Wörterbuch Y entsprechen, können sie mit One-Hot-Darstellungen in dem R|Y|-Raum codiert werden, was mit yt-1 und yi bezeichnet wird. Bei einem gängigen Lösungsansatz zur Modellierung der Relevanz in dem Vektorraum wird eine bilineare Funktion zur Bewertung von α i / t verwendet. Insbesondere gilt: α i / t ∝ exp(y T / t-1Ũyi) Hierbei dient der Exponent der Normierung über sämtliche {Ai} nach softmax-Art. Die Matrix Ũ ∊ R|Y|×|Y| enthält eine große Anzahl von Parametern für beliebige Y bei vertretbarer Größe des Vokabulars. Zur Verringerung der Größe der Parameter können die One-Hot-Darstellungen in einen niedrigdimensionalen semantischen Wortvektorraum (gemäß Diskussion im Zusammenhang mit 7 und 8) projiziert werden.
-
Es sei die Worteinbettungsmatrix gleich E ∊ Rd×|Y| mit d << |Y|. Dann sieht die vorherige bilineare Funktion folgendermaßen aus: α i / t ∝ exp(y T / t-1ETUEyi) Hierbei ist U eine d×d-Matrix. Sobald die Aufmerksamkeitspunktbewertungen berechnet sind, werden sie zur Modulierung der Stärke der Aufmerksamkeit bei verschiedenen Attributen verwendet. Die gewichtete Summe aller Attribute wird aus dem Worteinbettungsraum in den Eingaberaum von xt zusammen mit dem vorherigen Wort entsprechend dem nachfolgenden Ausdruck abgebildet: xt = Wx,Y(Eyt-1 + diag(wx,A)Σiα i / tEyi) Hierbei ist Wx,Y ∊ Rm×d die Projektionsmatrix, diag(w) bezeichnet eine Diagonalmatrix, die mit dem Vektor w erstellt ist, und wx,A ∊ Rd modelliert die relative Wichtigkeit von visuellen Attributen in jeder Dimension des semantischen Wortvektorraumes.
-
Das Ausgabeaufmerksamkeitsmodell φ ist ähnlich zu dem Eingabeaufmerksamkeitsmodell aufgebaut. Es wird jedoch ein anderer Satz von Aufmerksamkeitspunktbewertungen berechnet, da visuelle Konzepte in verschiedenen Abfolgen während der Analyse- und Syntheseprozesse eines einzelnen Satzes berücksichtigt werden können. Mit anderen Worten, Gewichtungen, die für Eingabe- und Ausgabemodelle verwendet werden, werden getrennt berechnet und weisen verschiedene Werte auf. Mit der gesamten Information, die zum Vorhersagen von Yt von Nutzen ist, das durch den aktuellen Zustand ht erfasst wird, wird die Punktbewertung β i / t für jedes Attribut Ai in Bezug auf ht gemessen, was durch den nachfolgenden Ausdruck erfasst wird: β i / t ∝ exp(h T / tVσ(Eyi)) Hierbei ist V ∊ Rn×d die bilineare Parametermatrix, und σ bezeichnet die Aktivierungsfunktion, die den Eingabeknoten mit dem verborgenen Zustand in dem RNN verbindet, was hier verwendet wird, um sicherzustellen, dass dieselbe nichtlineare Transformation auf die beiden Merkmalsvektoren vor deren Vergleich angewendet wird.
-
Erneut wird β i / t zum Modulieren der Aufmerksamkeit bei allen Attributen verwendet, und es wird die gewichtete Summe der Aktivierungen hiervon als Kompliment zu ht bei der Bestimmung der Verteilung pt verwendet. Insbesondere wird die Verteilung durch eine lineare Transformation, gefolgt von einer softmax-Normierung gemäß dem nachfolgenden Ausdruck erzeugt: pt ∝ exp(ETWY,h(ht + diag(wY,A)Σiβ i / tσ(Eyi))) Bei diesem Ausdruck ist WY,h ∊ Rd×n die Projektionsmatrix, während WY,A ∊ Rn die relative Wichtigkeit der visuellen Attribute in jeder Dimension des RNN-Zustandsraumes modelliert. Der Term ET implementiert den Trick mit der transponierten Gewichtungsteilung (transposed weight sharing) zur Parameterverringerung.
-
Die Trainingsdaten für jedes Bild bestehen aus Eingabebildmerkmalen v, {A
i} und der Ausgabebeschriftungswörterabfolge {Y
t}. Beim Modelllernen besteht das Ziel darin, alle Aufmerksamkeitsmodellparameter Θ
A = {U, V, W
*,*, w
*,*} gemeinsam mit allen RNN-Parametern Θ
R dadurch zu lernen, dass eine Verlustfunktion über den Trainingssatz minimiert wird. Der Verlust eines Trainingsbeispiels ist als gesamte negative log-Wahrscheinlichkeit all dieser Wörter in Kombination mit Regularisierungstermen an den Aufmerksamkeitspunktbewertungen {
α i / t } und {
β i / t } definiert und wird gemäß der nachfolgenden Verlustfunktion ausgedrückt:
Hierbei sind α und β Aufmerksamkeitspunktbewertungsmatrizen, wobei deren (t; i)-te Einträge die Gewichtungen
α i / t und
β i / t sind. Verwendet wird die Regularisierungsfunktion g zum Durchsetzen der Vollständigkeit der Aufmerksamkeit, die jedem Attribut in {A
i} zuteil wird, wie auch der Dünnbesiedeltheit (sparsity) der Aufmerksamkeit bei einem beliebigen bestimmten Zeitschritt. Dies erfolgt durch Minimieren der nachfolgenden Matrixnormen für α (Entsprechendes gilt für β):
Der erste Term mit p > 1 bestraft bzw. pönalisiert eine übermäßige Aufmerksamkeit, die einem beliebigen einzelnen Attribut A
i, das sich über den gesamten Satz angesammelt hat, zuteil wird, während der zweite Term mit 0 < q < 1 eine zerstreute Aufmerksamkeit für mehrere Attribute zu einer bestimmten Zeit bestraft bzw. pönalisiert. Ein stochastischer Gradientenabfallalgorithmus mit adaptiver Lernrate wird zur Optimierung der Verlustfunktion eingesetzt.
-
Nach der Betrachtung der vorstehenden exemplarischen Details, Prozeduren, Nutzerschnittstellen und Beispiele folgt nunmehr eine Diskussion eines exemplarischen Systems, das verschiedene Komponenten und Vorrichtungen beinhaltet, die für eine oder mehrere Implementierungen der hier beschriebenen Bildbeschriftungstechniken eingesetzt werden können.
-
Exemplarisches System und exemplarische Vorrichtung
-
12 zeigt allgemein bei 1200 ein exemplarisches System, das eine exemplarische Rechenvorrichtung 1202 beinhaltet, die ein oder mehrere Rechensysteme und/oder Vorrichtungen repräsentiert, die die hier beschriebenen verschiedenen Techniken implementieren können. Dies ist durch die Einbeziehung des Bilddienstes 120 dargestellt, der gemäß vorstehender Beschreibung arbeitet. Die Rechenvorrichtung 1202 kann beispielsweise ein Server eines Dienstanbieters, eine Vorrichtung in Verbindung mit einem Client (beispielsweise eine Client-Vorrichtung), ein chipinternes System (on-chip system) und/oder eine beliebige andere geeignete Rechenvorrichtung oder ein solches Rechensystem sein.
-
Die exemplarische Rechenvorrichtung 1202 ist derart dargestellt, dass sie ein Verarbeitungssystem 1204, ein oder mehrere computerlesbare Medien 1206 sowie eine oder mehrere I/O-Schnittstellen 1208, die kommunikativ miteinander gekoppelt sind, beinhaltet. Obwohl dies nicht gezeigt ist, kann die Rechenvorrichtung 1202 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 lokalen Bus, der eine Vielzahl von Busarchitekturen nutzt. Eine Vielzahl von anderen Beispielen ist ebenfalls miteinbezogen, so beispielsweise Steuer- bzw. Regel- und Datenleitungen.
-
Das Verarbeitungssystem 1204 bietet eine Funktionalität zur Durchführung einer oder mehrerer Operationen unter Verwendung von Hardware. Entsprechend ist das Verarbeitungssystem 1204 derart dargestellt, dass es Hardwareelemente 1210 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 andere logische Schaltung, die unter Verwendung eines oder mehrerer Halbleiter gebildet ist, beinhalten. Die Hardwareelemente 1210 sind nicht durch die Materialien, aus denen sie gebildet sind, oder durch die Verarbeitungsmechanismen, die dabei zum Einsatz kommen, beschränkt. So können die Prozessoren beispielsweise aus einem Halbleiter/aus Halbleitern und/oder Transistoren (beispielsweise elektronische integrierte Schaltungen (ICs)) gebildet sein. In diesem Zusammenhang können prozessorausführbare Anweisungen auch elektronisch ausführbare Anweisungen sein.
-
Die computerlesbaren Speichermedien 1206 sind derart dargestellt, dass sie einen Speicher/eine Ablage 1212 beinhalten. Der Speicher/die Ablage 1212 bietet eine Speicher-/Ablagekapazität in Verbindung mit einem oder mehreren computerlesbaren Medien. Beinhalten kann die Speicher-/Ablagekomponente 1212 flüchtige Medien (so beispielsweise einen Speicher mit wahlfreiem Zugriff (RAM)) und/oder nichtflüchtige Medien (so beispielsweise einen Nur-Lese-Speicher (ROM), einen Flash-Speicher, optische Platten, magnetische Platten und dergleichen mehr). Beinhalten kann die Speicher-/Ablagekomponente 1212 zudem feste Medien (beispielsweise RAM, ROM, ein fixes Festplattenlaufwerk und dergleichen mehr) wie auch entfernbare Medien (beispielsweise einen Flash-Speicher, ein entfernbares Festplattenlaufwerk, eine optische Platte und dergleichen mehr). Die computerlesbaren Medien 1206 können auf eine Vielzahl von anderen Arten, wie nachstehend noch beschrieben wird, konfiguriert sein.
-
Die Eingabe-/Ausgabe-Schnittstelle(n) 1208 bietet (bieten) eine Funktionalität, die einem Nutzer ermöglicht, Befehle und Information in die Rechenvorrichtung 1202 einzugeben, und die zudem ermöglicht, dem Nutzer und/oder anderen Komponenten oder Vorrichtungen unter Verwendung verschiedener Eingabe-/Ausgabevorrichtungen Information zu präsentieren. Beispiele für Eingabevorrichtungen beinhalten eine Tastatur, eine Cursorsteuer- bzw. Regelvorrichtung (beispielsweise eine Maus), ein Mikrofon, einen Scanner, eine Berührungsfunktionalität (beispielsweise kapazitive oder andere Sensoren, die zum Detektieren einer physischen Berührung konfiguriert sind), eine Kamera (die beispielsweise sichtbare oder nichtsichtbare Wellenlängen, beispielsweise Infrarotfrequenzen, zum Erkennen einer Bewegung als Gesten, die keine Berührung implizieren, erkennen kann) und dergleichen mehr. Beispiele für Ausgabevorrichtungen beinhalten eine Anzeigevorrichtung (beispielsweise einen Monitor oder einen Projektor), Lautsprecher, einen Drucker, eine Netzwerkkarte, eine Taktilreaktionsvorrichtung und dergleichen mehr. Daher kann die Rechenvorrichtung 1202 auf eine Vielzahl von Arten, wie nachstehend noch beschrieben wird, konfiguriert sein, um die Nutzerinteraktion zu unterstützen.
-
Es sind 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, die eine Vielzahl von Prozessoren aufweisen, implementiert sein können.
-
Eine Implementierung der beschriebenen Module und Techniken kann auf einer Form von computerlesbarem Medium gespeichert sein oder über dieses übertragen werden. Die computerlesbaren Medien können eine Vielzahl von Medien beinhalten, auf die von der Rechenvorrichtung 1202 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, die eine dauerhafte und/oder nichttemporäre Speicherung von Information ermöglichen, im Gegensatz zur bloßen Signalübertragung, Trägerwellen oder Signalen als solche. Daher bezeichnen computerlesbare Speichermedien nicht Signale als solche oder Signal tragende Medien. Die computerlesbaren Speichermedien beinhalten Hardware, so beispielsweise flüchtige und nichtflüchtige, entfernbare und nichtentfernbare Medien, und/oder Speichervorrichtungen, die bei einem Verfahren oder einer Technologie implementiert werden, die zur Speicherung von Information geeignet ist, so beispielsweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule, logische Elemente/Schaltungen oder andere Daten. Beinhalten können Beispiele für computerlesbare Speichermedien unter anderem RAM, ROM, EEPROM, einen Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, DVD oder einen anderen optischen Speicher, Festplatten, magnetische Kassetten, ein Magnetband, eine magnetische Speicherplatte oder andere magnetische Speichervorrichtungen, oder eine andere Speichervorrichtung, physische Medien oder ein Herstellungserzeugnis, das dafür geeignet ist, die gewünschte Information zu speichern und für einen Computer zugänglich zu sein.
-
„Computerlesbare Signalmedien” bezeichnen ein Signal tragendes Medium, das dafür konfiguriert ist, Anweisungen für die Hardware der Rechenvorrichtung 1202 beispielsweise über ein Netzwerk zu übertragen. Signalmedien können üblicherweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, so beispielsweise Trägerwellen, Datensignale oder einen anderen Transportmechanismus verkörpern. Signalmedien beinhalten zudem ein beliebiges Informationsverteilungsmedium. Der Begriff „moduliertes Datensignal” bezeichnet ein Signal, bei dem eine oder mehrere seiner Eigenschaften derart eingestellt oder geändert sind, dass Information in dem Signal codiert ist. Beispiels- und nicht beschränkungshalber beinhalten Kommunikationsmedien verdrahtete Medien, so beispielsweise ein verdrahtetes Netzwerk oder eine direktverdrahtete Verbindung, wie auch drahtlose Medien, so beispielsweise akustische, hochfrequenzbasierte, infrarote und andere Drahtlosmedien.
-
Wie vorstehend beschrieben worden ist, repräsentieren die Hardwareelemente 1210 und die computerlesbaren Medien 1206 Module, eine programmierbare Vorrichtungslogik und/oder eine feste Vorrichtungslogik mit Implementierung in Form von Hardware, die bei einigen Ausführungsformen zur Implementierung wenigstens einiger Aspekte der hier beschriebenen Techniken genutzt werden kann, so beispielsweise zum Ausführen einer oder mehrerer Anweisungen. Hardware kann Komponenten einer integrierten Schaltung oder eines chipinternen Systems, einer anwendungsspezifischen integrierten Schaltung (ASIC), eines feldprogrammierbaren Gate-Arrays FPGA), einer komplexen programmierbaren logischen Vorrichtung (CPLD) und auch andere Implementierungen aus Silizium oder anderer Hardware beinhalten. Wirken kann die Hardware in diesem Zusammenhang als Verarbeitungsvorrichtung, die Programmaufgaben ausführt, die durch Anweisungen definiert sind, und/oder als Logik, die durch die Hardware verkörpert ist, wie auch als Hardware, die zum Speichern von Anweisungen zur Ausführung genutzt wird, so beispielsweise computerlesbare Speichermedien, wie sie vorstehend beschrieben worden sind.
-
Kombinationen des Vorbeschriebenen können ebenfalls eingesetzt werden und verschiedene der hier beschriebenen Techniken implementieren. Entsprechend können Software, Hardware oder ausführbare Module als eine oder mehrere Anweisungen und/oder Logik, die in beliebiger Form von computerlesbaren Speichermedien und/oder einer oder mehreren Hardwareelementen 1210 verkörpert sind, implementiert sein. Die Rechenvorrichtung 1202 kann dafür konfiguriert sein, bestimmte Anweisungen und/oder Funktionen entsprechend Software- und/oder Hardwaremodulen zu implementieren. Entsprechend kann eine als Software gegebene Implementierung eines Moduls, das durch die Rechenvorrichtung 1202 ausführbar ist, auch wenigstens teilweise in Hardware verwirklicht sein, so beispielsweise unter Verwendung von computerlesbaren Speichermedien und/oder von Hardwareelementen 1210 des Verarbeitungssystems 1204. Die Anweisungen und/oder Funktionen können von einem oder mehreren Herstellungserzeugnissen (beispielsweise eine oder mehrere Rechenvorrichtungen 1202 und/oder Verarbeitungssysteme 1204) ausführbar/betreibbar sein, um Techniken, Module und Beispiele so, wie sie hier beschrieben sind, zu implementieren.
-
Die hier beschriebenen Techniken können von verschiedenen Konfigurationen der Rechenvorrichtung 1202 unterstützt werden, und man ist nicht auf die spezifischen Beispiele für die hier beschriebenen Techniken beschränkt. Die Funktionalität kann zudem gänzlich oder in Teilen durch ein verteiltes System implementiert sein, so beispielsweise über eine „Cloud” 1214 mittels einer Plattform 1216, wie nachstehend noch beschrieben wird.
-
Die Cloud 1214 beinhaltet eine Plattform 1216 für Ressourcen 1218 und/oder repräsentiert diese. Die Plattform 1216 abstrahiert eine darunter liegende Funktionalität der Hardware- (beispielsweise einen Server) und Softwareressourcen der Cloud 1214. Die Ressourcen 1218 können Anwendungen bzw. Apps und/oder Daten beinhalten, die verwendet werden können, während eine Computerverarbeitung auf Servern ausgeführt wird, die von der Rechenvorrichtung 1202 entfernt sind. Die Ressourcen 1218 können zudem Dienste beinhalten, die über das Internet und/oder über ein Teilnehmernetzwerk, so beispielsweise ein zellenbasiertes oder Wi-Fi-Netzwerk bereitgestellt werden.
-
Die Plattform 1216 kann Ressourcen und Funktionen zum Verbinden der Rechenvorrichtung 1202 mit anderen Rechenvorrichtungen abstrahieren. Die Plattform 1216 kann zudem dazu dienen, die Ressourcenskalierung zu abstrahieren, um einen entsprechenden Skalierungsgrad für einen zu erwartenden Bedarf an Ressourcen 1218, die über die Plattform 1216 implementiert sind, bereitzustellen. Entsprechend kann bei einer Ausführungsform mit einer vernetzten Vorrichtung eine Implementierung der hier beschriebenen Funktionalität über das System 1200 verteilt sein. Die Funktionalität kann beispielsweise teilweise auf der Rechenvorrichtung 1202 wie auch über die Plattform 1216, die die Funktionalität der Cloud 1214 abstrahiert, implementiert sein.
-
Schlussbemerkung
-
Obwohl Techniken in einer Sprache beschrieben worden sind, die für strukturelle Merkmale und/oder methodische Vorgehensweisen spezifisch ist, sollte einsichtig sein, dass der durch die beigefügten Ansprüche definierte Erfindungsgegenstand nicht notwendigerweise auf die spezifischen Merkmale oder Vorgehensweisen der Beschreibung beschränkt ist. Vielmehr sind die spezifischen Merkmale und Vorgehensweisen als exemplarische Formen der Implementierung des beanspruchten Erfindungsgegenstandes offenbart.