-
TECHNISCHES GEBIET
-
Aspekte und Implementierungen der vorliegenden Offenbarung beziehen auf die Bildverarbeitung, spezifischer auf die Erkennung eines Bildbestandteils innerhalb eines zusammengesetzten Bildes, z. B. zur Ermittlung, welcher Teil eines Bildschirmes eingebettete Einzelbilder eines hochgeladenen Videos enthält.
-
ALLGEMEINER STAND DER TECHNIK
-
Content-Sharing-Plattformen ermöglichen es Benutzern, Inhalte, wie Videos, zu konsumieren, hochzuladen, zu suchen, mit „gefällt mir“ oder „gefällt mir nicht“ zu markieren und/oder Inhalte wie Videos, Bilder, Audiodateien, Nachrichten u. Ä. zu kommentieren. Bilder enthalten üblicherweise eine Mehrzahl von den Bildelementen (z. B. Pixel), die in einer bestimmten Anordnung, wie z. B. einer zweidimensionalen Reihe organisiert sind; Videos enthalten für gewöhnlich Reihenfolgen von Bildern, die als Einzelbilder bezeichnet werden.
-
KURZDARSTELLUNG
-
Das Folgende ist eine vereinfachte Zusammenfassung verschiedener Aspekte dieser Offenbarung, um ein grundlegendes Verständnis derartiger Aspekte bereitzustellen. Diese Zusammenfassung ist keine umfangreiche Übersicht aller betrachteten Aspekte und zielt nicht darauf ab, Schlüssel- oder kritische Elemente zu identifizieren, oder den Umfang dieser Aspekte darzustellen. Ihr einziger Zweck besteht in der Präsentation einiger Konzepte dieser Offenbarung in einer vereinfachten Form als Auftakt für die nachfolgende ausführlichere Beschreibung.
-
In einem Aspekt der vorliegenden Offenbarung werden ein System und Verfahren für das Training eines Modells für maschinelles Lernen (z. B. ein neurales Netz, eine Support-Vektor-Maschine [SVM] usw.) und die Verwendung des trainierten Modells bei der Bildbearbeitung offenbart. In einer Implementierung umfasst ein Verfahren der Schulung des Modells für maschinelles Lernen zur Identifikation von Bildbestandteilen in zusammengesetzten Bildern die Erzeugung von Trainingsdaten für das Modell für maschinelles Lernen, worin das Erzeugen der Trainingsdaten umfasst: Erzeugung eines zusammengesetzten Bildes umfassend einen ersten Abschnitt, der Pixeldaten eines ersten Bildbestandteils enthält, sowie einem zweiten Teil, der Pixeldaten eines zweiten Bildbestandteils enthält, Erzeugung einer ersten Trainingseingabe umfassend Pixeldaten des zusammengesetzten Bildes und Erzeugung einer ersten Zielausgabe für die erste Trainingseingabe, bei der die erste Zielausgabe eine Position des ersten Abschnitts innerhalb des zusammengesetzten Bildes identifiziert. Weiterhin umfasst das Verfahren die Bereitstellung der Trainingsdaten, mit denen das Modell für maschinelles Lernen trainiert wird und zwar (i) an einem Satz Trainingseingaben, der die erste Trainingseingabe umfasst und (ii) einem Satz Zielausgaben, der die erste Zielausgabe umfasst.
-
In einigen Implementierungen umgibt der zweite Abschnitt des zusammengesetzten Bildes den ersten Abschnitt des zusammengesetzten Bildes. In einigen Implementierungen ist der erste Bildbestandteil ein Einzelbild eines ersten Videos und der zweite Bildbestandteil ist ein Einzelbild eines zweiten Videos. In einigen Implementierungen hat die Position des ersten Abschnitts innerhalb des zusammengesetzten Bildes jeweils Koordinaten einer oberen linken Ecke des ersten Bildbestandteils und Koordinaten einer unteren rechten Ecke des ersten Bildbestandteils. In einigen Implementierungen wird jede Trainingseingabe im Satz der Trainingseingaben auf eine Zielausgabe im Satz der Zielausgaben abgebildet. In einigen Implementierungen wird das Modell für maschinelles Lernen dafür konfiguriert, ein neues Bild zu verarbeiten und eine oder mehrere Ausgaben zu erzeugen, die (i) ein Vertrauensniveau ausweisen, dass das neue Bild ein zusammengesetztes Bild inkl. eines Bildbestandteils ist, und (ii) einen räumlichen Bereich anzeigen, in dem sich der Bildbestandteil im neuen Bild befindet.
-
In einem Aspekt der vorliegenden Offenbarung umfasst ein Verfahren den Erhalt eins Eingabebildes, dessen Verarbeitung unter Verwendung eines Modells für maschinelles Lernen, und basierend auf der Verarbeitung des Eingabebildes unter Verwendung des Modells für maschinelles Lernen das Einholen einer oder mehreren Ausgaben, die (i) ein Vertrauensniveau ausweisen, dass das Eingabebild ein zusammengesetztes Bild inkl. eines Bildbestandteils ist, und (ii) einen räumlichen Bereich anzeigen, in dem sich der Bildbestandteil im Eingabebild befindet. In einigen Implementierungen umfasst das Verfahren weiterhin die Feststellung, dass das Vertrauensniveau eine Grenzwertbedingung erfüllt und die Extraktion des Bildbestandteils aus dem räumlichen Bereich des Eingabebilds. (Das Modell für maschinelles Lernen ist möglicherweise in Übereinstimmung mit dem zuvor beschriebenen Aspekt trainiert worden.) In anderen Implementierungen kann der extrahierte Bildbestandteil im Rahmen einer Bildvergleichstechnologie oder einer Inhaltserkennungstechnologie weiter verwendet werden, z. B. durch Erzeugung eines Fingerabdrucks aus dem extrahierten Bildbestandteil und anschließenden Vergleich des Fingerabdrucks mit mindestens einem anderen Bild. In einem Beispiel kann das Vergleichen des hergestellten Fingerabdruckes mit einem Fingerabdruck von mindestens einem anderen Bild das Vergleichen des hergestellten Fingerabdruckes mit gespeicherten Fingerabdrücken einer Vielzahl von Bildern umfassen, um festzustellen, ob der Bildbestandteil irgendeinem aus der Vielzahl von Bildern ähnlich ist
-
In einigen Implementierungen enthält das Eingabebild einen zweiten Bildbestandteil, der den Bildbestandteil umgibt. In einigen Implementierungen ist der Bildbestandteil ein Einzelbild eines Videos. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des Eingabebildes. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des ersten Bildes und ein Verbund aus der Vielzahl der räumlichen Bereiche enthält alle Pixel des ersten Bildes. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des Eingabebildes und die Vielzahl von räumlichen Bereichen ist einheitlich in Bezug auf Größe und Form. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des Eingabebildes und mindestens zwei aus der Vielzahl der räumlichen Bereiche haben unterschiedliche Größen. In einigen Implementierungen ist der räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des Eingabebildes und mindestens zwei der räumlichen Bereiche aus der Vielzahl haben unterschiedliche Formen. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des Eingabebildes und mindestens zwei der räumlichen Bereiche aus der Vielzahl überlappen sich gegenseitig. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des Eingabebildes und die vielen räumlichen Bereiche überlappen sich nicht.
-
In einem Aspekt der vorliegenden Offenbarung umfasst ein Verfahren den Erhalt eines Eingabebildes, und das Verarbeiten des Eingabebildes unter Verwendung eines trainierten Modells, das konfiguriert ist, basierend auf Pixeldaten des Eingabebildes eine oder mehreren Ausgaben zu erzeugen, die (i) ein Vertrauensniveau ausweisen, dass das Eingabebild ein zusammengesetztes Bild inkl. eines Bildbestandteils ist, und (ii) einen räumlichen Bereich anzeigen, der im Eingabebild einen Bildbestandteil enthält. (Auch hier kann das Modell in Übereinstimmung mit dem zuvor beschriebenen Aspekt trainiert worden sein.) In einigen Implementierungen umfasst das Verfahren weiterhin die Feststellung, dass das Vertrauensniveau eine Grenzwertbedingung erfüllt und die Extraktion des Bildbestandteils aus dem räumlichen Bereich innerhalb des Eingabebildes. In anderen Implementierungen kann der extrahierte Bildbestandteil im Rahmen einer Bildvergleichstechnologie oder einer Inhaltserkennungstechnologie weiter verwendet werden, z. B. durch Erzeugung eines Fingerabdrucks des Bildbestandteils und Vergleich des erzeugten Fingerabdrucks mit einem Fingerabdruck mindestens eines anderen Bildes. In einem Beispiel kann der Vergleich des hergestellten Fingerabdruckes mit einem Fingerabdruck von mindestens einem anderen Bild das Vergleichen des hergestellten Fingerabdruckes mit gespeicherten Fingerabdrücken einer Vielzahl von Bildern umfassen, um festzustellen, ob der Bildbestandteil irgendeinem aus der Vielzahl von Bildern ähnlich ist.
-
In einem Aspekt der vorliegenden Offenbarung, umfasst ein Gerät einen Speicher, um ein erstes (Eingabe-) Bild zu speichern und eine Verarbeitungsvorrichtung, die operativ mit dem Speicher verbunden ist, um Pixeldaten eines ersten Bildes als Eingabe für ein trainiertes Modell für maschinelles Lernen bereitzustellen, eine oder mehrere Ausgaben von dem trainierten Modell für maschinelles Lernen zu erhalten, und aus der einen oder den mehreren Ausgaben ein Vertrauensniveau zu ziehen, dass es sich bei dem ersten Bild um ein zusammengesetztes Bild einschließlich eines Bildbestandteils handelt und das sich zumindest ein Teil des Bildbestandteils in einem bestimmten räumlichen Bereich des ersten Bildes befindet. In einigen Implementierungen muss das Verarbeitungsniveau ferner bestimmen, dass das Vertrauensniveau eine Grenzwertbedingung erfüllt und den Bildbestandteil aus dem räumlichen Bereich des ersten Bildes extrahieren.
-
In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des ersten Bildes. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des ersten Bildes und die Vielzahl von räumlichen Bereichen ist einheitlich in Bezug auf Größe und Form. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des ersten Bildes und mindestens zwei der räumlichen Bereiche aus der Vielzahl haben unterschiedliche Größen. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des ersten Bildes und mindestens zwei der räumlichen Bereiche aus der Vielzahl überlappen sich gegenseitig. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des ersten Bildes und die vielen räumlichen Bereiche überlappen sich nicht. In einigen Implementierungen ist der erste räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des ersten Bildes und mindestens zwei der räumlichen Bereiche aus der Vielzahl haben unterschiedliche Formen. In einigen Implementierungen ist der räumliche Bereich einer aus einer Vielzahl von räumlichen Bereichen des ersten Bildes und ein Verbund aus der Vielzahl der räumlichen Bereiche enthält alle Pixel des ersten Bildes. In einigen Implementierungen wird das trainierte Modell für maschinelles Lernen mit einem Eingabe-/Ausgabe-Mapping trainiert, das aus einer Eingabe und einer Ausgabe basierend auf den Pixeldaten eines zusammengesetzten Bildes besteht, das zusammengesetzte Bild besteht aus einem Teil, der Pixeldaten eines vierten Bildes enthält und einem zweiten Teil mit Pixeldaten eines fünften Bildes, und die Ausgabe identifiziert eine Position des ersten Teils innerhalb des zusammengesetzten Bildes.
-
Weiterhin werden Computergeräte für die Durchführung (oder für die Durchführung konfiguriert) der Operationen eines jeden der hier beschriebenen Verfahren und die verschiedenen hierin beschriebenen Implementierungen offenbart. Computerlesbare Medien, die Anweisungen für die Durchführung der Operationen speichern, welche ein beliebiges der hier beschriebenen Verfahren und die verschiedenen hierin beschriebenen Implementierungen enthalten, werden ebenfalls offenbart.
-
Figurenliste
-
Aspekte und Implementierungen der vorliegenden Offenbarung sind besser in vollem Umfang aus der untenstehenden Detailbeschreibung und aus den beiliegenden Zeichnungen verschiedener Aspekte und Implementierungen der Offenbarung verständlich, die jedoch nicht dahingehend verstanden werden sollen, dass sie die Offenbarung auf die spezifischen Aspekte oder Implementierungen beschränken, sondern dienen lediglich als Erklärung und zum Verständnis.
- 1 zeigt eine veranschaulichende Computersystem-Architektur in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung.
- 2 zeigt ein Flussdiagramm eines Beispiels für ein Trainingsverfahren für ein Modell für maschinelles Lernen in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung.
- 3 zeigt ein veranschaulichendes zusammengesetztes Bild in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung.
- 4 zeigt ein Flussdiagramm eines Beispiels für ein Verfahren der Bildverarbeitung unter Verwendung eines trainierten Modells für maschinelles Lernen in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung.
- 5 zeigt eine erste Reihe von räumlichen Bereichen eines Bildes in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung.
- 6 zeigt eine zweite Reihe von räumlichen Bereichen eines Bildes in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung.
- 7 zeigt eine dritte Reihe von räumlichen Bereichen eines Bildes in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung.
- 8 zeigt eine vierte Reihe von räumlichen Bereichen eines Bildes in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung.
- 9 zeigt ein Blockdiagramm eines veranschaulichenden Computersystems, das in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung arbeitet.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Es gibt Situationen mit dem Wunsch, zwei Bilder oder Bildreihenfolgen miteinander zu vergleichen. Während es prinzipiell möglich ist, die zwei Bilder oder Bildreihenfolgen direkt zu vergleichen, ist das wahrscheinlich rechenintensiv und/oder langsam, daher ist es üblich, Versionen eines Bildes oder einer Bildreihenfolge mit niedrigerer Auflösung zu erzeugen, die manchmal als „Fingerabdruck“ des Bildes oder der Bildreihenfolge bezeichnet werden, um diese für den Bildvergleich zu verwenden. Als ein Beispiel kann ein Benutzer einer Content-Sharing-Plattform Inhalte zur Aufnahme durch die Plattform hochladen (z. B. Videos, Bilder, Audioclips usw.), was anderen Benutzern die Möglichkeit gibt, diese Inhalte zu konsumieren (z. B. ansehen o. Ä.). In einigen Fällen könnte es wünschenswert sein, bestimmte Arten von Inhalten von der Einbeziehung auszunehmen, wie z. B. Inhalte anderer Besitzer, Inhalte mit als geheim eingestuftem Material, Inhalte, die nicht für alle Altersgruppen geeignet sind und so weiter. Dementsprechend setzen einige Content-Sharing-Plattformen automatische Erkennungstechnologien ein, um solche Inhalte zu entdecken und zurückzuweisen. Die automatischen Erkennungstechnologien können einen Fingerabdruck des hochgeladenen Inhalts erstellen (z. B. durch Anwendung einer Funktion auf Einzelbilder eines Videos) um festzustellen, ob der erstellte Fingerabdruck einem der gespeicherten Fingerabdrücke ähnlich ist.
-
Einige Benutzer haben Strategien entwickelt, mit denen sie versuchen diese Erkennungstechnologien zu umgehen. Z. B. können Benutzer Videos erzeugen, die nur einen Teil des Bildschirms nutzen, was merkmalbasierte Extraktions-/Übereinstimmungstechniken, die das gesamte Bild des Bildschirms bearbeiten, aus „der Spur“ bringen kann. Herkömmliche Erkennungstechnologien können normalerweise nicht erkennen, wenn Videobilder in der Größe verändert und in einen bestimmten Teil des Bildschirms gesetzt wurden.
-
Hier werden Aspekte und Implementierungen eines automatisierten Systems offenbart, das Fälle erkennen kann, in denen ein Bild, wie ein Videobild, verkleinert und in einem größeren Bild eingebettet wurde (z. B. ein größeres Bild eines Bildschirms oder ein Fenster auf dem Bildschirm). Genauer gesagt, wird in Übereinstimmung mit einer Implementierung ein Satz Beispielbilder für das Training des Modells für maschinelles Lernen erstellt. Jedes der Beispielbilder wird aus zwei vorhandenen Bildern erzeugt (z. B. zwei Einzelbilder eines Films usw.), indem man sie zu einzelnen zusammengesetzten Bild verschmilzt (z. B. durch Größenjustierung des ersten und zweiten Bildes, um das erste Bild als kleineres Vordergrundbild in einem kleineren Teil des zusammengesetzten Bildes zu verwenden, das zweite Bild hingegen als größeren Hintergrund in einen größeren Teil des zusammengesetzten Bildes). In 3 wird beispielsweise das erste Bild innerhalb eines kleineren Teils 301-1 des Vollbildes platziert, das zweite Bild wird innerhalb eines größeren Teils 301-2 des Vollbildes platziert.
-
Beim Training des Modells für maschinelles Lernen werden Pixeldaten eines zusammengesetzten Bildes als Eingabe für das Modell für maschinelles Lernen zur Verfügung gestellt und eine oder mehrere Positionen des ersten Bildes innerhalb des zusammengesetzten Bildes werden dem Modell für maschinelles Lernen als eine oder mehrere Zielausgaben zur Verfügung gestellt (z. B. Koordinaten der oberen linken und unteren rechten Ecke des ersten Bildes usw.). Auf diese Weise wird das Modell für maschinelles Lernen darauf trainiert, die Position eines Bildbestandteils innerhalb eines zusammengesetzten Bildes zu identifizieren.
-
Nach dem Training des Modells für maschinelles Lernen kann ein neues Bild (z. B. ein Bild mit einem eingebetteten Einzelbild eines hochgeladenen Videos usw.) für die Verarbeitung identifiziert werden. In diesem Fall ist die Position eines Bildbestandteils (z. B. das eingebettete Einzelbild des hochgeladenen Videos) innerhalb dieses neuen Bildes unbekannt, weil das neue Bild dem Modell für maschinelles Lernen in seiner Gesamtheit zur Verfügung gestellt wird, ohne irgendein Wissen, wie das neue Bild erzeugt wurde.
-
In einer Implementierung wird eine Vielzahl räumlicher Bereiche (z. B. rechteckige Bereiche o. Ä.) innerhalb des neuen Bildes definiert (verschiedene Beispiele werden in den 5 bis 8 gezeigt und im Detail nachfolgend mit Bezug auf das Verfahren in 4 besprochen). Pixeldaten des neuen Bildes werden dem trainierten Modell für maschinelles Lernen als Eingabe angeboten, was darauf basierend eine oder mehrere Ausgaben erzeugt. In einer Implementierung werden aus der/den Ausgabe(n) des Modells für maschinelles Lernen anschließend Zuverlässigkeitsdaten gewonnen, wobei die Zuverlässigkeitsdaten für jeden aus der Vielzahl der räumlichen Bereiche ein Zuverlässigkeitsniveau einschließen, das sich auf einen Bildbestandteil innerhalb des neuen Bildes in diesem bestimmten räumlichen Bereich bezieht. Wird beispielsweise ein dem Bild 300 in 3 ähnelndes Bild in das trainierte Modell für maschinelles Lernen eingegeben und werden die räumlichen Bereiche 501-1 bis 501-12 in 5 als die Vielzahl der räumlichen Bereiche definiert, dann können Aspekte der vorliegenden Offenbarung, die sich auf das Maschinenlernmodell beziehen, darauf hindeuten, dass es für das eingebettete Bild im räumlichen Bereich 501-6 ein deutlich höheres Zuverlässigkeitsniveau als im Falle des räumlichen Bereichs 501-12 gibt. Bestimmte Aspekte hinsichtlich des Trainings und der Verwendung des Modells für maschinelles Lernen werden nachfolgend detaillierter beschrieben.
-
Aspekte der vorliegenden Offenbarung liefern folglich einen Mechanismus zur Identifizierung und Lokalisierung von eingebetteten Bildern in Bildern im Vollformat. Dieser Mechanismus erlaubt es den Techniken des Bildvergleichs und der automatisierten Inhaltserkennung (z. B. automatisierte Methoden zur Erkennung von Inhalten anderer, eingestuftem Material usw.), sich auf die relevanten Bereiche eines Vollbildes zu „fokussieren“, anstatt mit Gesamtbildern zu arbeiten. Dieses erhöht die Zuverlässigkeit der Techniken des Bildvergleichs und der Inhaltserkennung und reduziert die Notwendigkeit, die Ergebnisse solcher Techniken manuell zu überprüfen. Versucht ein Benutzer beispielsweise, die Fingerabdrucknahme eines Films zu umgehen, indem er die Größe jedes Einzelbildes des Films verringert und jedes resultierende Einzelbild in einem bestimmten Teil eines Bildschirmbildes positioniert, können Aspekte der vorliegenden Offenbarung die Position des Bildteils mit dem Einzelbild des Films entdecken und sicherstellen, dass brauchbare Fingerabdrücke des Films entstehen. Entsprechend kann die Genauigkeit dieser Techniken verbessert werden, wenn Ausführungsformen der vorliegenden Offenbarung zusammen mit automatisierten Techniken der Inhaltserkennung verwendet werden.
-
1 veranschaulicht eine veranschaulichende Systemarchitektur 100 gemäß einer Implementierung der vorliegenden Offenbarung. Die Systemarchitektur 100 schließt ein: einen Server 120, einen oder mehrere Server 130 bis 150, einen Inhaltsspeicher 110 und die Client-Computer 102A-102N, die an ein Netz 104 angeschlossen sind. Das Netz 104 kann ein öffentliches Netz sein (wie das Internet), ein privates Netz (wie ein lokales Netz (LAN), ein Weitverkehrsnetz (WAN)), oder eine Kombination aus diesen.
-
Die Client-Computer 102A-102N können PCs, Laptops, Mobiltelefone, Tablet-Computer, Set-Top-Boxen, Fernseher, Videospielkonsolen, Digitale Assistenten oder beliebige andere Computergeräte sein. Die Client-Computer 102A-102N können ein Betriebssystem (OS) haben, das die Hard- und Software der Client-Computer 102A-102N verwaltet. In einer Implementierung können die Client-Computer 102A-102N Videos zum Webserver zwecks Speicherung und/oder Verarbeitung hochladen.
-
Der Server 120 kann ein Rackmount-Server sein, ein Router-Computer, ein PC, ein mobiler digitaler Assistent, ein Mobiltelefon, ein Laptop-Computer, ein Tablet-Computer, eine Kamera, eine Videokamera, ein Netbook, ein Tischrechner, ein Media-Center oder jede mögliche Kombination der oben genannten. Der Server 120 enthält einen Upload-Server 125, der die Inhalte (wie Videos, Audiodateien, Bilder o. Ä.) von den Client-Computern 102A-102N durch Hochladen erhalten kann (z. B. über eine Webseite, eine Anwendung o. Ä.).
-
Der Inhaltsspeicher 110 ist ein Permanentspeicher, der Inhalte sowie Datenstrukturen für die Kennzeichnung, Organisation und Indizierung der der Medien speichern kann. Der Inhaltsspeicher 110 kann in einem oder mehreren Speichergeräten untergebracht sein, wie z. B. dem Hauptspeicher, magnetischen oder optischen Speicherplatten, Band- oder Festplattenlaufwerken, an das lokale Netz angeschlossenen Speichereinheiten (NAS), einem Speichernetz (SAN) und so weiter. In einigen Implementierungen kann der Inhaltsspeicher 110 ein am lokalen Netz angeschlossener Dateiserver sein, während andere Implementierungen den Inhaltsspeicher 110 in Form einer anderen Art von Permanentspeicher betreiben, wie z. B. als objektorientierte Datenbank, relationale Datenbank o. Ä., die vom Server 120 oder einem oder mehreren unterschiedlichen Computern mit Anschluss an den Server 120 über das Netzwerk 104 gehostet wird.
-
Zu den im Inhaltsspeicher 110 abgelegten Inhaltselementen können von Benutzern erzeugte Medienelemente gehören, die über Client-Computer hochgeladen wurden, wie auch Medienelemente von Dienstanbietern wie z. B. Nachrichtenagenturen, Verlagshäusern, Bibliotheken usw. In einigen Implementierungen kann der Inhaltsspeicher 110 von einem Drittanbieter bereitgestellt werden, während er in einigen anderen Implementierungen bei dem gleichen Betreiber läuft, der auch den Server 120 unterhält. In einigen Beispielen können Inhaltsspeicher 110 und Server 120 Teil der Content-Sharing-Plattform sein, die es Benutzern ermöglicht, Medienelemente zu konsumieren, hochzuladen, ihnen zuzustimmen („liken“), sie zu missbilligen und/oder Kommentare dazu abzugeben.
-
Die Content-Sharing-Plattform kann zahlreiche Kanäle einschließen. Ein Kanal kann ein Dateninhalt sein, der von einer gemeinsamen Quelle erhältlich ist, oder ein Dateninhalt, der ein gemeinsames Thema, Design oder eine Substanz aufweist. Bei dem Dateninhalt kann es sich um digitalen, von einem Benutzer ausgewählten Inhalt, um digitalen, von einem Benutzer bereitgestellten Inhalt, um digitalen, von einem Benutzer hochgeladenen Inhalt, um digitalen, von einem Anbieter ausgewählten Inhalt, um digitalen, von einem Sender ausgewählten Inhalt usw. handeln. Ein Kanal kann einem Eigentümer zugeordnet sein, der ein Benutzer ist, der Tätigkeiten auf dem Kanal ausführen kann. Unterschiedliche Aktivitäten können mit dem Kanal basierend auf den Aktionen des Eigentümers verbunden sein, wie z. B. dass der Benutzer digitalen Inhalt auf dem Kanal verfügbar macht, der Eigentümer digitalen Inhalt auswählt (z. B. Liken), der mit einem anderen Kanal verbunden ist, der Eigentümer Kommentare über digitalen Inhalt abgibt, der mit einem anderen Kanal verbunden ist usw. Die mit dem Kanal verbundenen Aktivitäten können in einem Aktivitäts-Feed des Kanals gesammelt werden. Benutzer außer dem Eigentümer des Kanals können einen oder mehrere Kanäle abonnieren, an denen sie interessiert sind. Das Konzept von „abonnieren“ kann auch als „Liken“, „Folgen“, „Befreunden“ usw. bezeichnet werden.
-
Jeder Kanal kann eines oder mehrere Medienelement(e) beinhalten. Zu den Beispielen für Medienelemente gehören ohne Einschränkung digitale Videos, digitale Filme, digitale Fotos, digitale Musik, Inhalt von Webseiten, Updates in sozialen Medien, elektronische Bücher (eBooks), elektronische Magazine, digitale Zeitungen, digitale Audiobücher, elektronische Zeitschriften, Webblogs, RSS-Feeds, elektronische Comic-Bücher, Softwareanwendungen usw. In einigen Implementierungen werden Medienelemente auch als Videoinhaltselemente bezeichnet.
-
Medienelemente können über Medienbetrachter genutzt werden, die auf den Client-Computern 102A-102N ausgeführt werden. In einer Implementierung kann der Medienbetrachter eine Anwendung sein, die es Benutzern gestattet, Inhalte wie Bilder, Videos (z. B. Videoinhaltselemente), Webseiten, Dokumente usw. zu betrachten. Z. B. kann es sich bei den Medienbetrachtern 112a-z um einen Webbrowser handeln, der auf Inhalte (z. B., Webseiten wie Hyper-Text-Markup-Language-Seiten (HTML) digitale Medien oder Inhaltartikel usw.) zugreifen, sie abrufen, darstellen und/oder navigieren kann, die von einem Webserver bereitgestellt werden. Die Medienbetrachter können Inhalte (z. B. eine Webseite, einen Medienbetrachter) für einen Benutzer rendern, anzeigen und/oder präsentieren. Die Medienbetrachter können auch einen eingebetteten Medienplayer (z. B. einen Flash®-Player oder einen HTML5-Player) anzeigen, der Teil einer Webseite ist (z. B. eine Webseite, die Informationen über ein Produkt aus dem Angebot eines Online-Händlers bereitstellen kann). In einem weiteren Beispiel können die Medienbetrachter eigenständige Anwendungen sein, die es Benutzern ermöglichen, digitale Medienelemente (z. B. digitale Videos, Digitalbilder, elektronische Bücher usw.) zu betrachten.
-
Die Medienbetrachter können den Client-Computern 102A bis 102N durch den Server 120 und/oder eine Content-Sharing-Plattform bereitgestellt werden. So können beispielsweise die Medienbetrachter in von der Content-Sharing-Plattform bereitgestellten Webseiten eingebettete Medienplayer sein. In einem weiteren Beispiel können die Medienbetrachter Anwendungen sein, die mit dem Server 120 und/oder der Content-Sharing-Plattform kommunizieren.
-
Der Server 130 enthält einen Generator für Trainingssätze 131, der Trainingsdaten erzeugen kann (z. B. einen Satz Trainingseingaben und Zielausgaben), um ein Modell für maschinelles Lernen zu schulen. Einige Operationen des Generators für Trainingssätze 131 werden mit Bezug auf 2 nachfolgend detailliert beschrieben.
-
Der Server 140 enthält einen Generator für Trainingssätze 141, der ein Modell für maschinelles Lernen 160 schulen kann. Das Modell für maschinelles Lernen 160 kann sich auf ein Modellartefakt beziehen, das von der Trainingsmaschine 141 unter Verwendung der Trainingsdaten mit Trainingseingaben und entsprechenden Zielausgaben (korrekte Antworten auf entsprechende Trainingseingaben) erzeugt wird. Die Trainingsmaschine 141 kann in den Trainingsdaten Muster finden, die Trainingseingaben mit Zielausgaben (die vorauszusagende Antwort) verbinden und gibt diese an das Modell für maschinelles Lernen 160 zur Aufnahme der Muster weiter. Das Modell für maschinelles Lernen kann beispielsweise aus einer einzelnen Stufe von linearen oder nichtlinearen Operationen bestehen (wie eine Stützvektormaschine [SVM], oder es kann ein Tiefnetz sein, d. h. ein Modell für maschinelles Lernen, das aus mehrstufigen nichtlinearen Operationen besteht. Ein Beispiel für ein tiefes Netzwerk ist ein neurales Netzwerk mit einer oder mehreren verdeckten Schichten, und so ein Modell für maschinelles Lernen kann beispielsweise durch Anpassung der Gewichtungen eines neuralen Netzwerks in Übereinstimmung mit einem Rückführungslernalgorithmus o. Ä. geschult werden. Aus praktischen Gründen bezieht sich der Rest der Offenbarung auf die Implementierung als ein neuronales Netzwerk, obwohl einige Implementierungen auch ein SVM oder eine andere Art von Lernmaschine anstatt oder zusätzlich zu einem neuralen Netzwerk einsetzen können. In einem Aspekt wird der Trainingssatz von dem Server 130 bezogen.
-
Der Server 150 enthält eine Maschine zur räumlichen Analyse 151, die dem trainierten Modell für maschinelles Lernen 160 Pixeldaten von Bildern als Eingabe zur Verfügung stellt und von dem Modell für maschinelles Lernen 160 eine oder mehrere Ausgaben erwartet. Wie mit Bezug auf 4 nachfolgend detailliert beschrieben, kann die Maschine zur räumlichen Analyse 151 in einer Implementierung aus den Ausgaben des Modells für maschinelles Lernen 160 auch Zuverlässigkeitsdaten extrahieren und diese für die Schätzung der Position der eingebetteten Bilder in den Eingabebildern verwenden.
-
Es bleibt anzumerken, dass in einigen anderen Implementierungen die Funktionen der Server 120, 130, 140 und 150 von einer geringeren Anzahl von Maschinen zur Verfügung gestellt werden können. In einigen Implementierungen können die Server 130 und 140 beispielsweise in einer einzelnen Maschine integriert sein, während in einigen anderen Implementierungen die Server 130, 140 und 150 in Form einer einzelnen Maschine vorliegen können. Zusätzlich können in einigen Implementierungen einer oder mehrere der Server 120, 130, 140 und 150 in die Content-Sharing-Plattform integriert sein.
-
Generell können Funktionen, die beschreibungsgemäß in einer Implementierung von der Content-Sharing-Plattform und/oder den Servern 120, 130, 140 und 150 ausgeführt werden, in anderen Implementierungen auch von den Client-Computern 102A bis 102N ausgeführt werden, falls das passend ist. Zusätzlich kann die einer bestimmten Komponente zugeschriebene Funktionalität durch unterschiedliche oder mehrere zusammenwirkende Komponenten ausgeführt werden. Auf die Content-Sharing-Plattform und/oder die Server 120, 130, 140 und 150 kann auch als Service zugegriffen werden, der anderen Systemen oder Geräten über entsprechende Anwendungsprogrammierschnittstellen bereitstellt und daher nicht auf die Verwendung in Websites beschränkt ist.
-
2 zeigt ein Flussdiagramm eines Beispiels für das Verfahren 200 für die Schulung eines Modells für maschinelles Lernen in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung. Das Verfahren wird anhand von Logikverarbeitung durchgeführt und kann Hardware (Schaltkreise, dedizierte Logik usw.), Software (die auf einem universellen Computersystem oder einer dedizierten Maschine läuft), oder eine Kombination aus diesen enthalten. In einer Implementierung wird das Verfahren von dem Computersystem 100 aus 1 durchgeführt, in einigen anderen Implementierungen können einer oder mehrere der Blöcke aus 2 von einer oder mehreren anderen Maschinen durchgeführt werden, die nicht in den Abbildungen dargestellt werden. In einigen Aspekten können einer oder mehrere Blöcke aus der 2 durch den Generator für Trainingssätze 131 des Servers 130 ausgeführt werden.
-
Zwecks einfacher Erklärung werden die Verfahren als eine Reihe von Vorgängen dargestellt und beschrieben. Gemäß dieser Offenbarung können jedoch Vorgänge in unterschiedlichen Reihenfolgen und/oder gleichzeitig auftreten, und mit anderen Vorgängen, die nicht hierin präsentiert und beschrieben sind. Weiterhin sind eventuell nicht alle veranschaulichten Vorgänge erforderlich, um die Verfahren gemäß dem offenbarten Gegenstand zu implementieren. Zusätzlich werden Fachleute auf dem Gebiet verstehen und erkennen, dass die Verfahren alternativ als eine Reihe von zusammenhängenden Zuständen über ein Zustandsdiagramm oder Ereignisse repräsentiert werden könnten. Zusätzlich sollte erkannt werden, dass die in dieser Spezifikation offenbarten Verfahren auf einem Herstellungsartikel gespeichert werden können, um das Transportieren und Übertragen dieser Verfahren zu Computergeräten zu erleichtern. Der Begriff „Herstellungsartikel“, wie hierin verwendet, soll ein Computerprogramm umfassen, auf das von jeder computerlesbaren Vorrichtung oder jedem Speichermedium zugegriffen werden kann.
-
Das Verfahren 200 beginnt mit der Erzeugung von Trainingsdaten für ein Modell für maschinelles Lernen. In einigen Implementierungen wird bei Block 201 ein Trainingssatz T in einem leeren Satz initialisiert. Bei Block 202 werden je ein erstes und ein zweites Bild als Bildbestandteile ausgewählt, um ein zusammengesetztes Bild zu erzeugen, wie nachfolgend mit Bezug auf Block 203 detailliert beschrieben wird. In einer Implementierung sind die ersten und zweiten Bilder zufällig ausgewählte Einzelbilder (z. B. zwei unterschiedliche Einzelbilder eines bestimmten Videos, ein erstes Einzelbild aus einem ersten Video und ein zweites Einzelbild aus einem zweiten Video usw.). Es ist anzumerken, dass in einigen anderen Implementierungen die Bilder auf eine andere Weise ausgewählt werden können und möglicherweise nicht aus einem Video stammen (z. B. Fotos usw.).
-
Bei Block 203 wird ein zusammengesetztes Bild aus den ersten und zweiten Bildbestandteilen erzeugt, die bei Block 202 ausgewählt wurden. In einer Implementierung enthält das zusammengesetzte Bild zwei Teile, einen mit Pixeldaten des ersten Bildbestandteils und einen zweiten Teil, der Pixeldaten des zweiten Bildbestandteils enthält. 3 zeigt ein illustratives zusammengesetztes Bild 300; wie in der Figur gezeigt, enthält das zusammengesetzte Bild 300 ein erstes Bild in einem Abschnitt 301-1 und ein zweites Bild in einem Abschnitt 301-2. In einem Beispiel kann das zusammengesetzte Bild so erzeugt werden, dass es einen Versuch eines böswilligen Benutzers nachahmt, durch ein automatisiertes Erkennungssystem (z. B. ein auf Fingerabdrücke gestütztes Erkennungssystem) ein unzulässiges Bild „einzuschleusen“ (z. B. ein urheberrechtlich geschütztes, ein nicht altersgerechtes Bild o. Ä.).
-
Es ist zu beachten, dass die relativen Größen der Abschnitte anders als in der 3 dargestellt ausfallen können (z. B. könnte der interne Abschnitt einen größeren Anteil des zusammengesetzten Bildes ausmachen, als in der 3, z. B. 40% des zusammengesetzten Bildes, 70% des zusammengesetzten Bildes usw.). Ähnlich kann auch die räumliche Anordnung der Abschnitte von der Darstellung in 3 abweichen (z. B. horizontal nebeneinander, vertikal nebeneinander usw.).
-
Weiterhin ist zu beachten, dass in einem Fall wie in 3, bei dem ein Abschnitt von einem anderen Abschnitt umgeben ist, das zusammengesetzte Bild erzeugt werden kann, indem ein „Vordergrund“-Bild über einen Teil eines „Hintergrund“-Bildes gelegt wird. Zusätzlich können Pixel an den Rändern, welche die Abschnitte trennen, verarbeitet werden (z. B. Anti-Alias usw.), um den Versuch eines böswilligen Benutzers nachzuahmen, die Randerkennung zu erschweren.
-
Bei Block 204 wird ein Eingabe/Ausgabe-Mapping erzeugt. Das Eingabe/Ausgabe-Mapping bezieht sich auf die Trainingseingabe, die Pixeldaten des zusammengesetzten Bildes enthält, oder darauf basiert (z. B. Intensitätswerte für rot/grün/blau der Pixel des zusammengesetzten Bildes usw.) und die Zielausgabe für die Trainingseingabe, bei der die Zielausgabe eine oder mehrere Positionen des ersten Abschnitts (der Teil, der die Pixeldaten des ersten Bildbestandteils enthält) innerhalb des zusammengesetzten Bildes identifiziert (z. B. Koordinaten von zwei oder mehreren Punkten, die den ersten Abschnitt definieren, wie etwa Koordinaten der oberen linken und unteren rechten Ecken des ersten Abschnitts usw.), und wobei die Trainingseingabe mit der Zielausgabe assoziiert ist (oder auf diese gemapped wird). Bei Block 205 wird das im Block 204 erzeugte Eingabe/Ausgabe-Mapping dem Trainingssatz T hinzugefügt.
-
Bei Block 206 gibt es Verzweigungen, die davon abhängig sind, ob der Trainingssatz T für die Schulung des Modells für maschinelles Lernen 160 ausreichend ist. Wenn dem so ist, wird die Durchführung bei Block 207 fortgesetzt, andernfalls kehrt die Durchführung zum Block 202 zurück. Es sollte beachtet werden, dass in einigen Implementierungen die ausreichende Eignung des Trainingssatzes T einfach aufgrund der Zahl der Eingabe/Ausgabe-Mappings im Trainingssatz festgestellt werden kann; in einigen anderen Implementierungen basiert die Feststellung der ausreichenden Eignung des Trainingssatzes T auf einem oder mehreren anderen Kriterien (z. B. wie sehr sich die Trainingsbeispiele unterscheiden usw.) zusätzlich oder anstelle zu der Anzahl der Eingabe/Ausgabe-Mappings.
-
Bei Block 207 wird der Trainingssatz T zur Schulung des Modells für maschinelles Lernen 160 zur Verfügung gestellt. In einer Implementierung wird der Trainingssatz T der Trainingsmaschine 141 von dem Server 140 zur Verfügung gestellt, um das Training durchzuführen. Im Falle eines neuralen Netzwerks werden beispielsweise Eingabewerte eines bestimmten Eingabe/Ausgabe-Mappings (z. B. Pixelwerte eines Trainingsbildes usw.) in das neurale Netzwerk eingegeben und die Ausgabewerte der Eingabe/Ausgabe-Mappings werden in den Ausgabeknoten des neuralen Netzwerks gespeichert. Die Verbindungsgewichte im neuralen Netzwerk werden dann in Übereinstimmung mit einem Lernalgorithmus angepasst (z. B. Rückpropagierung usw.) und das Verfahren wird für die anderen Eingabe/Ausgabe-Mappings im Trainingssatz T. wiederholt. Nach Block 207 kann das Modell für maschinelles Lernen 160 dann für die Bildverarbeitung benutzt werden (z. B. in Übereinstimmung mit dem Verfahren 400 aus 4, das nachfolgend beschrieben wird).
-
4 zeigt ein Flussdiagramm eines Beispiels für das Verfahren 400 zur Verarbeitung von Bildern mit einem Modell für maschinelles Lernen in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung. Das Verfahren wird anhand von Logikverarbeitung durchgeführt und kann Hardware (Schaltkreise, dedizierte Logik usw.), Software (die auf einem universellen Computersystem oder einer dedizierten Maschine läuft), oder eine Kombination aus diesen enthalten. In einer Implementierung wird das Verfahren von dem Server 150 und dem trainierten Modell für maschinelles Lernen 160 aus 1 durchgeführt, in einigen anderen Implementierungen können einer oder mehrere der Blöcke aus 4 von einer oder mehreren anderen Maschinen durchgeführt werden, die nicht in den Abbildungen dargestellt werden.
-
Das Verfahren 400 kann den Erhalt eines Eingabebildes (z. B. von einem Benutzergerät oder einem Server, wie dem Upload-Server 125) und die Verarbeitung des Eingabebildes mit einem trainierten Modell wie dem Modell für maschinelles Lernen 160 einschließen. Das trainierte Modell kann dafür konfiguriert werden, aufgrund der Pixeldaten des Eingabebildes eine oder mehrere Ausgaben zu erzeugen, die (i) ein Vertrauensniveau anzeigen, dass das Eingabebild ein zusammengesetztes Bild mit einem enthaltenen Bildbestandteil ist, und (ii) dass es einen räumlichen Bereich im Eingabebild gibt, der den Bildbestandteil enthält.
-
In einigen Implementierungen kann bei Block 401 ein Bild (Eingabebild) für die Verarbeitung identifiziert werden. In einem Beispiel ist das Bild ein Einzelbild aus einem hochgeladenen Video (z. B. ein Video, das zu einer Content-Sharing-Plattform hochgeladen wurde).
-
Bei Block 402 wird ein Satz räumlicher Bereiche {A1, A2,..., An} des Bildes bestimmt. Verschiedene Beispiele der räumlichen Bereiche werden in den 5 bis 8 bildlich dargestellt. In 5 sind die räumlichen Bereiche Rechtecke gleicher Größe (gleich in Größe und Form) 501-1 bis 501-12, während in 6 die räumlichen Bereiche 601-1 bis 601-9 rechteckig, aber unterschiedlich groß sind (d. h. sie haben unterschiedliche Größen). In 7 sind die räumlichen Bereiche 701-1 bis 701-6 nicht-polygonal (z. B. durch parametrische Kurven verbunden usw.), während die räumlichen Bereiche 801-1 bis 801-5 in 8 aus unterschiedlich geformten, sich überlappenden Vierecken bestehen. Es ist anzumerken, dass andere Definitionen für räumliche Bereiche möglich sind, so beispielsweise andere Arten polygonaler Bereiche (z. B. Dreiecke, Sechsecke, nichtrechtwinklige Vierecke usw.), unterschiedlich geformte polygonale Bereiche (z. B. einige der Bereiche drei- und andere viereckig usw.), sich überlappende nicht-polygonale Bereiche, polygonale oder nicht-polygonale Bereiche ohne Überlappung und so weiter. Darüber hinaus, obwohl die räumlichen Bereiche der Beispiele in den 5 bis 8 das ganze Bild ausmachen (d. h. die Gesamtheit der räumlichen Bereiche enthält alle Pixel des Bildes), kann das in einigen anderen Beispielen womöglich nicht der Fall sein.
-
Weiterhin ist anzumerken, dass in einigen anderen Implementierungen Bilder auf einer nicht-planaren Oberfläche gerendert werden können (z. B. die Innenseite einer Halbkugel in einer VR-Anwendung usw.). In solchen Fällen können die räumlichen Bereiche Oberflächen mit 3 anstatt 2 Dimensionen sein.
-
Bei Block 403 werden Pixeldaten des als Eingabebild für das Modell für maschinelles Lernen dienenden Bildes bereitgestellt und bei Block 404 eine oder mehrere Ausgaben vom Modell für maschinelles Lernen erhalten. Bei Block 405 werden Vertrauensdaten aus den bei Block 404 erhaltenen Ausgaben gezogen, ob das Eingabebild ein zusammengesetztes Bild mit einem enthaltenen Bildbestandteil ist und ob mindestens ein Teil des Bildbestandteils in einem bestimmten räumlichen Bereich des Eingabebildes liegt. In einer Implementierung enthalten die Vertrauensdaten für jeden räumlichen Bereich Aj des Bildes ein Vertrauensniveau, dass das Bild ein zusammengesetztes Bild mit einem enthaltenen Bildbestandteil I1 ist (und in einigen Implementierungen auch mindestens ein anderes Bild I2) mit mindestens einem Bildbestandteil I1 in dem räumlichen Bereich Aj (und in einigen Implementierungen auch mindestens einen Abschnitt des Bildes I2 in dem räumlichen Bereich Aj). In einem Beispiel ist das Vertrauensniveau eine reale Zahl zwischen 0 und 1. Es ist anzumerken, dass das Vertrauensniveau möglicherweise nicht eine Wahrscheinlichkeit ausdrückt (z. B. kann die Summe der Vertrauensniveaus für alle räumlichen Bereiche möglicherweise nicht 1 entsprechen).
-
Bei Block 406 werden die Vertrauensdaten verwendet, um einen oder mehrere räumliche Bereiche zu schätzen, die das Bild I1 enthalten (und in einigen Implementierungen auch einen oder mehrere räumliche Bereiche, die Bild I2 enthalten). In einigen Implementierungen wird der räumliche Bereich als das Bild I1 enthaltend gekennzeichnet, wenn das Vertrauensniveau für den räumlichen Bereich einen Grenzwertzustand erfüllt. Z. B. kann der räumliche Bereich mit dem höchsten Vertrauensniveau als das Bild I1 enthaltend gekennzeichnet, während in einigen anderen Beispielen, einer oder mehrere räumliche Bereiche als das Bild I1 enthaltend gekennzeichnet werden, wenn diese räumlichen Bereiche ein Vertrauensniveau oberhalb eines bestimmten Grenzwerts aufweisen.
-
Bei Block 407 werden Pixeldaten in dem/den gekennzeichneten räumlichen Bereich(en) verarbeitet. In einigen Implementierungen kann zu der Verarbeitung der Pixeldaten eine Ermittlung gehören, ob die Pixeldaten eventuell für ein Hochladen auf die Content-Sharing-Plattform unzulässig sind (z. B. urheberrechtlich geschütztes Material, nicht altersgerechtes Material usw.). Wie oben beschrieben wird diese Verarbeitung erleichtert, indem man ermittelt, wo sich das kleinere Bild im Gesamtbild befindet. In einigen Implementierungen schließt die Verarbeitung der Pixeldaten das Extrahieren der Pixeldaten (Bildbestandteil) aus dem gekennzeichneten räumlichen Bereich und die Erzeugung eines auf den extrahierten Pixeldaten beruhenden Fingerabdrucks ein, sowie den Vergleich des hergestellten Fingerabdrucks mit gespeicherten Fingerabdrücken von vielen Bildern, um festzustellen, ob der Bildbestandteil irgendwelchen Bildern ähnelt. In Fällen, in denen mehrere Bildbestandteile durch das Modell für maschinelles Lernen in dem zusammengesetzten Bild gekennzeichnet werden, ist anzumerken, dass die oben genannten Operationen (inkl. der in den Blöcken 406 und 407) für jeden Bildbestandteil durchgeführt werden.
-
Nach Block 407 kehrt der Ablauf zu Block 401 zurück und fährt mit der Verarbeitung eines anderen Bildes fort (z. B. dem folgenden Einzelbild aus dem hochgeladenen Video usw.).
-
9 zeigt ein Blockdiagramm eines veranschaulichenden Computersystems 900, das in Übereinstimmung mit einem oder mehreren Aspekten der vorliegenden Offenbarung arbeitet. In verschiedenen veranschaulichenden Beispielen kann das Computersystem 900 einem beliebigen der Computergeräte innerhalb der Systemarchitektur 100 aus 1 entsprechen. In bestimmten Implementierungen kann das Computersystem 900 mit anderen Computersystemen verbunden sein (z. B. über ein Netzwerk 930, wie etwa ein lokales Netzwerk (LAN), ein Intranet, ein Extranet oder das Internet). Das Computersystem 900 kann in der Kapazität eines Servers oder eines Client-Computers in einer Client-Server-Umgebung, oder als Partnerrechner in einem Peer-to-Peer- oder einer verteilten Netzwerkumgebung betrieben werden. Das Computersystem 900 kann ein Personal Computer (PC), ein Tablet-PC, eine Set-Top-Box (STB), ein persönlicher digitaler Assistent (PDA), ein Mobiltelefon, eine Webanwendung, ein Server, ein Netzwerk-Router, ein Switch oder eine Brücke oder jeder Computer sein, der einen Satz Anweisungen ausführen kann (sequenziell oder anders), die spezifizieren, welche Maßnahmen dieses Gerät ausführen soll. Ferner beinhaltet der Begriff „Computer“ jede Sammlung von Computern, die einzeln oder gemeinsam einen Satz (oder mehrere Sätze) von Anweisungen ausführen, um irgendeines oder mehrere der hierin beschriebenen Verfahren durchzuführen.
-
In einem weiteren Aspekt kann das Computersystem 900 eine Verarbeitungsvorrichtung 902, einen flüchtigen Speicher 904 (z. B. Speicher mit wahlfreiem Zugriff (RAM)), einen nichtflüchtigen Speicher 906 (z. B. Nur-Lese-Speicher (ROM)) oder elektrisch löschbaren programmierbaren ROM (EEPROM) und eine Datenspeichervorrichtung 916 beinhalten, die über einen Bus 908 miteinander kommunizieren können.
-
Die Verarbeitungsvorrichtung 902 kann von einem oder mehreren Prozessoren bereitgestellt werden wie zum Beispiel einem Allzweckprozessor (wie beispielsweise einem CISC-Mikroprozessor (CIS), einem RISC-Mikroprozessor (Reduced Instruction Set Computing), einem sehr langen Befehlswort (VLIW), einem Mikroprozessor, der andere Arten von Befehlssätzen implementiert, oder einem Mikroprozessor, der eine Kombination von Arten von Befehlssätzen implementiert oder einem spezialisierten Prozessor (wie zum Beispiel einer anwendungsspezifischen integrierten Schaltung (ASIC), einem feldprogrammierbaren Gate-Array) (FPGA), einem digitalen Signalprozessor (DSP) oder einem Netzwerkprozessor).
-
Das Computersystem 900 kann weiterhin eine Netzwerkschnittstelle 922 beinhalten. Das Computersystem 900 kann auch eine Videoanzeigeeinheit 910 (z. B. ein LCD), eine alphanumerische Eingabevorrichtung 912 (z. B. eine Tastatur), eine Cursorsteuerung 914 (z. B. eine Maus) und ein Gerät zur Signalerzeugung 920 beinhalten.
-
Die Datenspeichervorrichtung 916 kann ein nicht transitorisches computerlesbares Speichermedium 924 beinhalten, auf dem Anweisungen 926 gespeichert sein können, die irgendeines oder mehrere der hierin beschriebenen Verfahren oder Funktionen codieren, einschließlich Anweisungen zur Implementierung der Verfahren 200 und 400 in 2 bzw. 4.
-
Die Anweisungen 926 können sich während ihrer Ausführung durch das Computersystem 900 auch vollständig oder zumindest teilweise im flüchtigen Speicher 904 und/oder dem Verarbeitungsgerät 902 befinden, wodurch der flüchtige Speicher 904 und das Verarbeitungsgerät 902 ebenfalls maschinenlesbare Speichermedien darstellen.
-
Während das computerlesbare Speichermedium 924 in den Darstellungsbeispielen als ein einzelnes Medium gezeigt wird, kann der Begriff „computerlesbares Speichermedium“ ein einzelnes oder mehrere Medien (z. B. eine zentralisierte oder dezentralisierte Datenbank und/oder dazugehörige Pufferspeicher und Server) beinhalten, die einen oder mehrere Sätze an ausführbaren Anweisungen speichern. Der Begriff „computerlesbares Speichermedium“ beinhaltet auch jedes physische Medium, das zur Speicherung oder zur Kodierung eines Satzes von Anweisungen für die Ausführung durch einen Computer fähig ist, der den Computer veranlasst, eine oder mehrere der hierin beschriebenen Verfahren auszuführen. Der Begriff „computerlesbares Speichermedium“ beinhaltet unter anderem auch Festkörperspeicher, optische Medien und Magnetträger beinhalten, ohne jedoch darauf beschränkt zu sein.
-
Die hier beschriebenen Verfahren, Komponenten und Merkmale können mittels separaten Hardwarekomponenten umgesetzt werden oder können in der Funktionalität anderer Hardwarekomponenten wie ASICS, FPGAs, DSPs oder ähnlichen Geräten integriert sein. Zusätzlich können die Verfahren, Komponenten und Merkmale durch Komponentenmodule oder Funktionsschaltkreise in den Hardwaregeräten implementiert sein. Weiterhin können die Verfahren, Komponenten und Eigenschaften in jeder möglichen Kombination von Hardwaregeräten und Computerprogrammkomponenten, oder in Computerprogrammen implementiert werden.
-
Falls nicht spezifisch anders erwähnt, beziehen sich Begriffe wie z. B. „erzeugen“, „bereitstellen“, „trainieren“ o. Ä. auf Aktionen und Prozesse, die von Computersystemen ausgeführt oder implementiert werden, die Daten manipulieren und umwandeln, die als physische (elektronische) Mengenangaben innerhalb der Computersystemregister oder - speicher oder anderer solcher Datenspeicher-, Übertragungs- oder Anzeigegeräte vorliegen. Weiterhin dienen die Begriffe „erster“, „zweiter“, „dritter“, „vierter“ usw.in ihrer Verwendung hier als Bezeichnungen zur Unterscheidung verschiedener Elemente voneinander und beziehen sich nicht unbedingt auf eine Reihenfolge gemäß ihrer numerischen Kennzeichnung.
-
Die hier beschriebenen Beispiele beziehen sich auch auf eine Vorrichtung für die Durchführung der hierin beschriebenen Verfahren. Diese Vorrichtung kann speziell für die Durchführung der hier beschriebenen Verfahren konstruiert sein, oder kann aus einem Allzweckcomputer bestehen, der durch ein in dem Computer gespeichertes Computerprogramm selektiv programmiert wird. Solch ein Computerprogramm kann auf einem materiellen computerlesbaren Medium gespeichert sein.
-
Die hier beschriebenen Verfahren und Beispiele stehen nicht grundsätzlich mit einem bestimmten Computer oder einer anderen Vorrichtung in Zusammenhang. Unterschiedliche Allzwecksysteme können gemäß den hier verwendeten Lehren verwendet werden, oder es kann sich als vorteilhaft erweisen, mehr spezialisierte Vorrichtungen zur Durchführung der Verfahren 200 und 400 und/oder beliebige ihrer einzelnen Funktionen, Routinen, Unterroutinen oder Operationen zu konstruieren. Beispiele für die Struktur einer Vielzahl dieser Systeme werden in der obenstehenden Beschreibung gegeben.
-
Die vorstehende Beschreibung ist veranschaulichend, und nicht einschränkend gemeint. Obgleich die vorliegende Offenbarung mit Hinweisen auf spezifische veranschaulichende Beispiele und Implementierungen beschrieben worden ist, sollte klar sein, dass die vorliegende Offenbarung nicht auf die beschriebenen Beispiele und die Implementierungen beschränkt ist. Beispielsweise kann ein Merkmal, das unter Bezugnahme auf einen Aspekt oder eine Implementierung beschrieben ist, auch durch andere Aspekte oder Implementierungen bereitgestellt werden. Der Umfang der Offenbarung sollte daher mit Bezug auf die folgenden Ansprüche und dem vollen Umfang von Äquivalenten festgelegt werden, der diesen Ansprüchen zusteht.