-
HINTERGRUND DER ERFINDUNG
-
Die vorliegende Erfindung bezieht sich allgemein auf das Gebiet der Videoszenenerkennung und insbesondere auf ein Verwenden neuronaler Netzwerke bei der Videoszenenerkennung.
-
Im Allgemeinen verwenden Modelle zur Videoszenenerkennung deterministische Algorithmen zum Erlernen von Darstellungen von visuellen, schriftlichen und akustischen Merkmalen in Videoszenen.
-
KURZDARSTELLUNG
-
Ausführungsformen der vorliegenden Erfindung stellen ein Verfahren, ein System und ein Programmprodukt für ein Modell zum maschinellen Lernen von Videoszenenerkennung bereit.
-
Eine erste Ausführungsform umfasst ein Verfahren für ein Modell zum maschinellen Lernen von Videoszenenerkennung. Ein oder mehrere Prozessoren empfangen Merkmalsvektoren, die den Audio- und Videokomponenten eines Videos entsprechen. Der eine oder mehrere Prozessoren stellen die Merkmalsvektoren einem trainierten neuronalen Netzwerk als Eingabe bereit. Der eine oder mehrere Prozessoren empfangen von dem trainierten neuronalen Netzwerk eine Mehrzahl von Ausgabemerkmalsvektoren, die Aufnahmen des Videos entsprechen. Der eine oder mehrere Prozessoren wenden eine optimale Sequenzgruppierung auf die Ausgabemerkmalsvektoren an. Der eine oder mehrere Prozessoren trainieren das trainierte neuronale Netzwerk zumindest teilweise auf der Grundlage der angewendeten optimalen Sequenzgruppierung weiter.
-
Eine zweite Ausführungsform umfasst ein Computerprogrammprodukt für ein Modell zum maschinellen Lernen von Videoszenenerkennung. Das Computerprogrammprodukt umfasst ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die auf dem einen oder mehreren durch einen Computer lesbaren Speichermedien gespeichert sind. Die Programmanweisungen umfassen Programmanweisungen, um Merkmalsvektoren zu empfangen, die den Audio- und Videokomponenten eines Videos entsprechen. Die Programmanweisungen umfassen Programmanweisungen, um die Merkmalsvektoren einem trainierten neuronalen Netzwerk als Eingabe bereitzustellen. Die Programmanweisungen umfassen Programmanweisungen, um von dem trainierten neuronalen Netzwerk eine Mehrzahl von Ausgabemerkmalsvektoren zu empfangen, die Aufnahmen des Videos entsprechen. Die Programmanweisungen umfassen Programmanweisungen, um eine optimale Sequenzgruppierung auf die Ausgabemerkmalsvektoren anzuwenden. Die Programmanweisungen umfassen Programmanweisungen, um das trainierte neuronale Netzwerk zumindest teilweise auf der Grundlage der angewendeten optimalen Sequenzgruppierung weiter zu trainieren.
-
Eine dritte Ausführungsform umfasst ein Computersystem für ein Modell zum maschinellen Lernen von Videoszenenerkennung. Das Computersystem umfasst einen oder mehrere Computerprozessoren, ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die auf den durch einen Computer lesbaren Speichermedien gespeichert sind, um von mindestens einem des einen oder der mehreren Computerprozessoren ausgeführt zu werden. Die Programmanweisungen umfassen Programmanweisungen, um Merkmalsvektoren zu empfangen, die den Audio- und Videokomponenten eines Videos entsprechen. Die Programmanweisungen umfassen Programmanweisungen, um die Merkmalsvektoren einem trainierten neuronalen Netzwerk als Eingabe bereitzustellen. Die Programmanweisungen umfassen Programmanweisungen, um von dem trainierten neuronalen Netzwerk eine Mehrzahl von Ausgabemerkmalsvektoren zu empfangen, die Aufnahmen des Videos entsprechen. Die Programmanweisungen umfassen Programmanweisungen, um eine optimale Sequenzgruppierung auf die Ausgabemerkmalsvektoren anzuwenden. Die Programmanweisungen umfassen Programmanweisungen, um das trainierte neuronale Netzwerk zumindest teilweise auf der Grundlage der angewendeten optimalen Sequenzgruppierung weiter zu trainieren.
-
Figurenliste
-
- 1 ist ein funktionales Blockschaubild, das eine Datenverarbeitungsumgebung veranschaulicht, in der gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung eine Datenverarbeitungseinheit eine Multimedia-Suchmaschine durch maschinelles Lernen erzeugt.
- 2 veranschaulicht Betriebsprozesse zum Ausführen eines Systems für eine Multimedia-Suchmaschine in einer Datenverarbeitungseinheit in der Umgebung von 1 gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
- 3 veranschaulicht Betriebsprozessoren zum Ausführen eines Systems für eine Multimedia-Suchmaschine in einer Datenverarbeitungseinheit in der Umgebung von 1 gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
- 4 veranschaulicht einen Betriebsprozess zum Ausführen eines Systems zum Ermitteln einer Videoszenenerkennung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung.
- 5A zeigt ein Blockschaubild einer Abstandsmatrix gemäß mindestens einer Ausführungsform der vorliegenden Erfindung.
- 5B zeigt ein benachbartes Blockschaubild einer Abstandsmatrix gemäß mindestens einer Ausführungsform der vorliegenden Erfindung.
- 6 zeigt eine Cloud-Computing-Umgebung gemäß mindestens einer Ausführungsform der vorliegenden Erfindung.
- 7 zeigt Abstraktionsmodellschichten gemäß mindestens einer Ausführungsform der vorliegenden Erfindung.
- 8 zeigt ein Blockschaltbild von Komponenten einer oder mehrerer Datenverarbeitungseinheiten in der in 1 dargestellten Datenverarbeitungsumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Detaillierte Ausführungsformen der vorliegenden Erfindung werden hier mit Bezug auf die dazugehörigen Zeichnungen offenbart. Es sei darauf hingewiesen, dass die offenbarten Ausführungsformen lediglich zur Veranschaulichung möglicher Ausführungsformen der vorliegenden Erfindung dienen und verschiedene Formen annehmen können. Darüber hinaus ist jedes der im Zusammenhang mit den verschiedenen Ausführungsformen vorgestellten Beispiele nur zur Veranschaulichung gedacht und nicht einschränkend. Weiterhin sind die Figuren nicht notwendigerweise maßstabsgetreu, einige Merkmale können vergrößert sein, um Einzelheiten bestimmter Komponenten zu zeigen. Daher sind hier offenbarte spezifische strukturelle und funktionale Einzelheiten nicht als einschränkend zu verstehen, sondern lediglich als repräsentative Grundlage, um den Fachmann zu lehren, die vorliegende Erfindung auf verschiedene Weise einzusetzen.
-
Verweise in der Beschreibung auf „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ usw. bedeuten, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft aufweisen kann, jedoch nicht jede Ausführungsform notwendigerweise das bestimmte Merkmal, die bestimmte Struktur oder Eigenschaft aufweisen muss. Darüber hinaus beziehen sich solche Formulierungen nicht unbedingt auf dieselbe Ausführungsform. Wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird ferner darauf hingewiesen, dass es für den Fachmann offensichtlich ist, ein solches Merkmal, eine solche Struktur oder Eigenschaft in Verbindung mit weiteren Ausführungsformen zu beeinflussen, unabhängig davon, ob dies ausdrücklich beschrieben ist oder nicht.
-
Ausführungsformen der vorliegenden Erfindung verbessern die Genauigkeit von Modellen zur Videoszenenerkennung, die Aufteilen von Videosegmenten in Szenen und weiterhin Klassifizieren dieser Szenen umfassen. Bekannte Lösungen für Modelle zur Videoszenenerkennung sammeln Daten in Bezug auf Videosegmente und -szenen und extrahieren dann die visuellen Merkmale und die Textmerkmale aus diesen Videosegmenten und -szenen. Es ist allgemein bekannt, dass es aufgrund der begrenzten Menge an annotierten Daten zur Videoszenenerkennung keinen Ansatz gibt, bei dem ein voll funktionsfähiges Modell für maschinelles Lernen mittels Rückwärtspropagierung erzeugt wird.
-
Mögliche Lösungen stellen zwar unüberwachte Ansätze bereit, aber im Allgemeinen gruppieren diese Lösungen Aufnahmen in Szenen unter Verwendung einer Schlüsselvollbild-Ähnlichkeit einer Kategorie eines visuellen Wortdeskriptors, wobei ein Quantifizierungsverfahren verwendet wird, um einen leistungsfähigeren Deskriptor bereitzustellen. Das Gruppieren wird mit einem Gleitfenster-Algorithmus durchgeführt, der ermittelt, ob Aufnahmen oder kurze Szenen miteinander kombiniert werden sollen. Im Allgemeinen wird eine Abfolge von tiefen Merkmalen zu Szenen in einem Cluster zusammengefasst. Verknüpfungsaufnahmen werden mit einem Verfahren überlappender Verknüpfungen kombiniert, das einem graphgestützten Verfahren entsprechen kann. Darüber hinaus wird eine Bewertung von einer einzigen Ansicht aus durchgeführt. Im Allgemeinen lernen mögliche Lösungen ein Abstandsmaß unter Verwendung eines tiefen siamesischen Netzwerks (z.B. eines Modells für maschinelles Lernen), das spektrales Clustering anwendet, um die Szenengrenzen des Abstandsmaßes anzunähern. Damit das Video wiedergegeben werden kann, wird eine gemeinsame Darstellung von visuellen und textlichen Merkmalen für eine Ähnlichkeitskennzahl erlernt. Ausführungsformen der vorliegenden Erfindung stellen jedoch eine Lernpipeline für die Operation der Szenenaufteilung bereit, wobei das Lernen als von der Aufteilungsphase losgelöst betrachtet werden könnte, ähnlich wie beim Einbinden von Clustern.
-
Ausführungsformen der vorliegenden Erfindung verbessern die vorstehend genannten Lösungen, indem sie eine Lösung für die Szenenaufteilung, die nicht auf maschinellem Lernen beruht, insbesondere die optimale Sequenzgruppierung, mit überwachtem maschinellem Lernen kombinieren, um eine kombinierte, leistungsfähige Lösung für die Szenenaufteilung zu erzeugen. Auf diese Weise kombinieren Ausführungsformen der vorliegenden Erfindung, wie in dieser Beschreibung weiterhin erörtert wird, die Vorteile beider Verfahren der Szenenaufteilung und vermeiden gleichzeitig viele ihrer bekannten Mängel.
-
Die vorliegende Erfindung wird nun mit Bezug auf die Figuren ausführlich beschrieben.
-
1 ist ein funktionales Blockschaubild, das eine Datenverarbeitungsumgebung, die allgemein mit 100 bezeichnet wird, gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Die Datenverarbeitungsumgebung 100 umfasst das Datenverarbeitungssystem 120 und das Speichernetzwerk (SAN) 130, die über ein Netzwerk 110 verbunden sind. Das Computersystem 120 umfasst das Programm zur Szenenaufteilung 122, das Modell für maschinelles Lernen 124, das Programm zur optimalen Sequenzgruppierung 126 und die Computerschnittstelle 128. Das Speichernetzwerk (SAN) 130 umfasst die Serveranwendung 132 und die Datenbank 134.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung handelt es sich bei dem Computersystem 120 um eine Datenverarbeitungseinheit, die eine eigenständige Einheit, ein Server, ein Laptop-Computer, ein Tablet-Computer, ein Netbook-Computer, ein Personal Computer (PC), ein Personal Digital Assistant (PDA), ein Desktop-Computer oder eine beliebige programmierbare elektronische Einheit sein kann, die Daten empfangen, senden und verarbeiten kann. Im Allgemeinen stellt das Computersystem 120 eine beliebige programmierbare elektronische Einheit oder eine Kombination programmierbarer elektronischer Einheiten dar, die in der Lage sind, maschinenlesbare Programmanweisungen auszuführen und Datenübertragungen mit verschiedenen anderen Computersystemen (nicht dargestellt) durchzuführen. In einer anderen Ausführungsform stellt das Computersystem 120 ein Datenverarbeitungssystem dar, bei dem Computer und Komponenten in Clustern zusammengefasst sind und als ein einziger Pool nahtloser Ressourcen arbeiten. Im Allgemeinen kann das Computersystem 120 eine beliebige Datenverarbeitungseinheit oder eine Kombination von Einheiten mit Zugang zu verschiedenen anderen Datenverarbeitungssystemen (nicht dargestellt) sein und ist in der Lage, das Programm zur Szenenaufteilung 122, das Modell für maschinelles Lernen 124, das Programm zur optimalen Sequenzgruppierung 126 und die Computerschnittstelle 128 auszuführen. Das Computersystem 120 kann wie in Bezug auf 1 ausführlicher beschrieben interne und externe Hardwarekomponenten umfassen.
-
In dieser beispielhaften Ausführungsform sind das Programm zur Szenenaufteilung 122, das Modell für maschinelles Lernen 124, das Programm zur optimalen Sequenzgruppierung 126 und die Computerschnittstelle 128 im Computersystem 120 gespeichert. In anderen Ausführungsformen werden das Programm zur Szenenaufteilung 122, das Modell für maschinelles Lernen 124, das Programm zur optimalen Sequenzgruppierung 126 und die Computerschnittstelle 128 jedoch extern gespeichert und über ein Datenübertragungsnetzwerk, z.B. das Netzwerk 110, zugänglich gemacht. Bei dem Netzwerk 110 kann es sich beispielsweise um ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN) wie das Internet oder eine Kombination aus beidem handeln, und es kann eine drahtgebundene, drahtlose, Lichtwellenleiter- oder jede andere in der Technik bekannte Verbindung umfassen. Im Allgemeinen kann es sich bei dem Netzwerk 110 gemäß einer gewünschten Ausführungsform der vorliegenden Erfindung um eine beliebige Kombination von Verbindungen und Protokollen handeln, die Datenübertragungen zwischen dem Computersystem 120, dem SAN 130 und verschiedenen anderen Computersystemen (nicht dargestellt) unterstützen.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung kann es sich bei den verschiedenen anderen Computersystemen (nicht dargestellt) um eine eigenständige Einheit, einen Server, einen Laptop-Computer, einen Tablet-Computer, einen Netbook-Computer, einen Personal Computer (PC), einen Desktop-Computer oder eine beliebige programmierbare elektronische Einheit handeln, die Daten empfangen, senden und verarbeiten kann. In einer weiteren Ausführungsform stellen die verschiedenen anderen Computersysteme ein Datenverarbeitungssystem dar, bei dem Computer und Komponenten in Clustern zusammengefasst sind und als ein einziger Pool nahtloser Ressourcen arbeiten. Im Allgemeinen kann es sich bei den verschiedenen anderen Computersystemen um eine beliebige Datenverarbeitungseinheit oder eine Kombination von Einheiten mit Zugriff auf das Computersystem 120, das SAN 130 und das Netzwerk 110 handeln, und sie sind in der Lage, das Programm zur Szenenaufteilung 122, das Modell für maschinelles Lernen 124, das Programm zur optimalen Sequenzgruppierung 126 und die Computerschnittstelle 128 auszuführen. Die verschiedenen anderen Computersysteme können wie in Bezug auf 1 dargestellt und ausführlicher beschrieben interne und externe Hardwarekomponenten umfassen.
-
In der in 1 dargestellten Ausführungsform haben das Programm zur Szenenaufteilung 122, das Modell für maschinelles Lernen 124 und das Programm zur optimalen Sequenzgruppierung 126 zumindest teilweise Zugriff auf die Serveranwendung 132 und können auf dem Computersystem 120 gespeicherte Daten an das SAN 130 und verschiedene andere Computersysteme (nicht dargestellt) übertragen. Genauer gesagt, definiert das Programm zur Szenenaufteilung 122 einen Benutzer des Computersystems 120, der Zugriff auf die im Computersystem 120 und/oder in der Datenbank 134 gespeicherten Daten hat.
-
Zur Veranschaulichung ist das Programm zur Szenenaufteilung 122 in 1 dargestellt. In verschiedenen Ausführungsformen der vorliegenden Erfindung stellt das Programm zur Szenenaufteilung 122 logische Operationen dar, die auf dem Computersystem 120 ausgeführt werden, wobei die Computerschnittstelle 128 die Möglichkeit bietet, diese logischen Operationen anzuzeigen, die gemäß dem Programm zur Szenenaufteilung 122 verwaltet und ausgeführt werden. In verschiedenen Ausführungsformen umfasst das Programm zur Szenenaufteilung 122 ein Modell für maschinelles Lernen 124 und ein Programm zur optimalen Sequenzgruppierung 126, ohne auf diese beschränkt zu sein. In einigen Ausführungsformen stellt das Modell für maschinelles Lernen 124 ein kognitives KI-System dar, das Eingaben und Ausgaben (E/A) verarbeitet und analysiert. Darüber hinaus arbeitet das Modell für maschinelles Lernen 124 beim Ausführen einer kognitiven KI-Verarbeitung so, dass es von den analysierten E/A lernt und auf der Grundlage der Analyseoperation eine Abstandsmatrix erzeugt, ohne darauf beschränkt zu sein. In verschiedenen Ausführungsformen stellt das Programm zur optimalen Sequenzgruppierung deterministische Optimierungsformulierungen zum Lösen der Videoszenenerkennung dar, wobei die Formulierungen eine Abstandsmatrix der Aufnahmedarstellungen (d.h. der Aufnahmen eines Videos) verwenden und die optimale Aufteilung auf der Grundlage einer Kostenfunktion für die Abstände innerhalb einer Szene berechnen.
-
Das Computersystem 120 umfasst eine Computerschnittstelle 128. Die Computerschnittstelle 128 stellt eine Schnittstelle zwischen dem Computersystem 120 und dem SAN 130 bereit. In einigen Ausführungsformen kann es sich bei der Computerschnittstelle 128 um eine grafische Benutzerschnittstelle (GUI) oder eine Web-Benutzerschnittstelle (WUI) handeln, sie kann Text, Dokumente, Webbrowser, Fenster, Benutzeroptionen, Anwendungsschnittstellen und Operationsanweisungen anzeigen und umfasst die Informationen (z.B. Grafik, Text und Ton), die ein Programm einem Benutzer präsentiert, sowie die Steuersequenzen, die der Benutzer zum Steuern des Programms verwendet. In einigen Ausführungsformen greift das Computersystem 120 über eine Clientgestützte Anwendung, die auf dem Computersystem 120 ausgeführt wird, auf Daten zu, die von dem SAN 130 oder verschiedenen anderen Computersystemen übertragen werden. So umfasst das Computersystem 120 beispielsweise eine mobile Anwendungssoftware, die eine Schnittstelle zwischen dem Computersystem 120 und dem SAN 130 bereitstellt.
-
Bei dem Speichernetzwerk (SAN) 130 handelt es sich um ein Speichersystem, das die Serveranwendung 132 und die Datenbank 134 umfasst. Das SAN 130 kann eine oder mehrere Datenverarbeitungseinheiten, Server, Server-Cluster, Web-Server, Datenbanken und Speichereinheiten umfassen, ohne auf diese beschränkt zu sein. Das SAN 130 tauscht Daten mit dem Computersystem 120 und verschiedenen anderen Datenverarbeitungseinheiten (nicht dargestellt) über ein Netzwerk, z.B. das Netzwerk 110, aus. Beispielsweise tauscht das SAN 130 mit dem Modell für maschinelles Lernen 124 Daten aus, um Daten zwischen dem Computersystem 120 und verschiedenen anderen Datenverarbeitungseinheiten (nicht dargestellt) zu übertragen, die mit dem Netzwerk 110 verbunden sind. Bei dem SAN 130 kann es sich um eine beliebige Datenverarbeitungseinheit oder eine Kombination von Einheiten handeln, die für eine Datenübertragung mit einem lokalen loT-Netzwerk verbunden sind, d.h. ein Netzwerk, das aus verschiedenen Datenverarbeitungseinheiten besteht, darunter, ohne darauf beschränkt zu sein, das Computersystem 120, um die hier beschriebene Funktionalität bereitzustellen. Das SAN 130 kann wie in Bezug auf 8 beschrieben interne und externe Hardwarekomponenten umfassen. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass 1 eine beliebige Anzahl von Datenverarbeitungseinheiten, Servern, Datenbanken und/oder Speichereinheiten umfassen kann, und die vorliegende Erfindung ist nicht nur auf das in 1 Dargestellte beschränkt. Somit sind in einigen Ausführungsformen einige oder alle Merkmale und Funktionen des SAN 130 als Teil des Computersystems 120 und/oder einer anderen Datenverarbeitungseinheit enthalten. In ähnlicher Weise sind in einigen Ausführungsformen einige Merkmale des Computersystems 120 als Teil des SAN 130 und/oder einer anderen Datenverarbeitungseinheit enthalten.
-
In einigen Ausführungsformen stellen das Computersystem 120 und das SAN 130 außerdem eine Cloud-Computing-Plattform dar oder sind Teil davon. Cloud-Computing ist ein Modell oder ein Lieferdienst, der einen problemlosen, bedarfsorientierten Netzwerkzugang zu einem gemeinsamen Pool an konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht, die rasch bereitgestellt und mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter eines Dienstes freigegeben werden können. Ein Cloud-Modell kann Eigenschaften wie On-Demand-Self-Service (bedarfsorientierte Selbstbedienung), Broad Network Access (breiter Netzzugriff), Resource Pooling (Ressourcen-Bündelung), Rapid Elasticity (schnelle Anpassungsfähigkeit) und Measured Service (messbarer Dienst) umfassen, kann durch Dienstmodelle wie z.B. ein Platform-as-a-Service(PaaS)-Modell, ein Infrastructure-as-a-Service(laaS)-Modell und ein Software-as-a-Service(SaaS)-Modell dargestellt werden und kann in Form verschiedener Einsatzmodelle implementiert werden, z.B. als Private Cloud, Community Cloud (Benutzergemeinschafts-Cloud), Public Cloud (öffentliche Cloud) und Hybrid Cloud (hybride Cloud).
-
Das SAN 130 ist in 1 zur Veranschaulichung dargestellt. Es sei jedoch darauf hingewiesen, dass das SAN 130 in verschiedenen Ausführungsformen eine beliebige Anzahl von Datenbanken umfassen kann, die gemäß der Funktionalität der Serveranwendung 132 verwaltet werden. Im Allgemeinen stellt die Datenbank 134 Daten und die Serveranwendung 132 einen Code dar, der die Möglichkeit bereitstellt, bestimmte Maßnahmen in Bezug auf eine andere physische oder virtuelle Ressource zu ergreifen, und die Fähigkeit verwaltet, die Daten zu nutzen und zu ändern. In einer alternativen Ausführungsform kann das Programm zur Szenenaufteilung 122 auch jede beliebige Kombination der vorgenannten Merkmale darstellen, wobei die Serveranwendung 132 Zugriff auf die Datenbank 134 hat. Zur Veranschaulichung verschiedener Aspekte der vorliegenden Erfindung werden Beispiele für eine Serveranwendung 132 vorgestellt, bei der das Modell für maschinelles Lernen 124 ein oder mehrere lokale loT-Netzwerke darstellt, ohne auf diese beschränkt zu sein.
-
In einigen Ausführungsformen sind die Serveranwendung 132 und die Datenbank 134 in dem SAN 130 gespeichert. In verschiedenen Ausführungsformen können die Serveranwendung 132 und die Datenbank 134 jedoch auch extern gespeichert werden und wie vorstehend beschrieben über ein Datenübertragungsnetzwerk, z.B. das Netzwerk 110, zugänglich sein.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung handelt es sich bei dem Programm zur Szenenaufteilung 122 um ein Modell zur Videoszenenerkennung, wobei das Programm zur Szenenaufteilung 122 ein Video in semantische zeitliche Kapitel aufteilt. In verschiedenen Ausführungsformen stellt das Modell für maschinelles Lernen 124 ein Modell für maschinelles Lernen dar, das von einem Algorithmus zur optimalen Sequenzgruppierung (z.B. einem Programm zur optimalen Sequenzgruppierung 126) lernt, wobei das Lernen ein Verbessern der Ergebnisse der Videoaufteilung in semantische zeitliche Kapitel zum Ziel hat. Das Programm zur Szenenaufteilung 122 stellt eine Merkmalsdarstellung der Videoaufteilung durch Rückwärtspropagierung bereit, wobei die Auswirkung eines Änderns der Merkmalsdarstellung auf die Lösung des Algorithmus zur optimalen Sequenzgruppierung gemessen wird.
-
In verschiedenen Ausführungsformen verwendet das Programm zur Szenenaufteilung 122 eine Inception-V3-Architektur als visuellen Backbone-Merkmalsextraktor mit 2048 Dimensionen für eine Videoanalyse und ein VGGish-Netzwerk zum Codieren von Audiosegmenten in Vektoren mit 128 Dimensionen. In verschiedenen Ausführungsformen der vorliegenden Erfindung umfasst das Computersystem 120 ein Modell für maschinelles Lernen 124, das ein Modell für maschinelles Lernen (z.B. ein neuronales Netzwerk) darstellt, wobei das Modell für maschinelles Lernen Eingabe/Ausgabe(E/A)-Daten sowie mehrere verborgene Schichten von Neuronen (d.h. eine Schicht mit rektifizierten linearen Einheiten (Rectified Linear Units - ReLU)) aufweist. In verschiedenen Ausführungsformen werden vier vollständig verbundene Schichten des neuronalen Netzwerks verwendet, um die Videoszene in semantische zeitliche Kapitel aufzuteilen. In einigen Ausführungsformen werden vier Schichten für visuelles Lernen (z.B. 3.000, 3.000, 1.000, 100 Neuronen) und vier Schichten für Audio-Lernen (z. B. 200, 200, 100, 20 Neuronen) verwendet. In verschiedenen Ausführungsformen wendet das Modell für maschinelles Lernen 124 eine Stapelnormalisierung (batch normalization) auf mindestens die vier Schichten für visuelles Lernen und die vier Schichten für Audio-Lernen an. Darüber hinaus wendet das Modell für maschinelles Lernen 124 in verschiedenen Ausführungsformen ReLU-Aktivierungen auf alle Schichten des neuronalen Netzwerks mit Ausnahme der Ausgabeschicht an. In verschiedenen Ausführungsformen nutzt das Modell für maschinelles Lernen 124 einen Optimierungsrahmen, um das neuronale Netzwerk mit einer Lernrate von 5 × 10-3 zu trainieren. Einem Fachmann ist klar, dass die Lernrate ein Verhältnis ohne Einheit ist, mit dem der Gradient multipliziert wird. Das Modell für maschinelles Lernen 124 wendet ein Abbruchkriterium an, um eine Überanpassung des neuronalen Netzwerks zu vermeiden, und das Trainingsmodul des neuronalen Netzwerks wird abgebrochen, wenn der Trainingsverlust auf 25 % des Anfangswertes gesunken ist. Zusätzlich normalisiert das Modell für maschinelles Lernen 124 den Kosinusabstand (Δ) aus Gleichung (7) zwischen 0 und 1. Als Randparameter (α), der Wertparameter von Gleichung (7), wird 0,5 gewählt. Weiterhin wird vom Modell für maschinelles Lernen 124 ein logarithmischer Bogenansatz (log elbow approach) wie nachstehend definiert verwendet, um die Anzahl von Szenen aus der Videodatei (z.B. semantische zeitliche Kapitel) zu schätzen. Ein Optimierungsrahmen umfasst einen Gradientenabstieg oder eine ADAM-Optimierung zum Lernen der Parameter des Modells für maschinelles Lernen, ohne auf diese beschränkt zu sein.
-
In verschiedenen Ausführungsformen teilt das Modell für maschinelles Lernen 124 ein Video in semantische zeitliche Kapitel auf, um eine Blockdiagonale der Abstandsmatrix zu erzeugen, wobei die Abstandsmatrix die Abstände innerhalb einer Szene darstellt.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung berechnet das Modell für maschinelles Lernen 124 die Ähnlichkeit von Aufnahmen, die zur gleichen Szene gehören, im Gegensatz zu Aufnahmen, die zu anderen Szenen gehören. In verschiedenen Ausführungsformen wird die Ähnlichkeit von Szenen als Abstandsmatrix dargestellt, und im Allgemeinen wird eine Blockdiagonalstruktur erzeugt, um darzustellen, dass Aufnahmen, die zur gleichen Szene eines Videos gehören, wahrscheinlich niedrigere Abstandswerte haben als Aufnahmen, die zu anderen Szenen gehören. In verschiedenen Ausführungsformen verwendet das Programm zur optimalen Sequenzgruppierung 126 den Algorithmus zur optimalen Sequenzgruppierung, um die durch eine Blockdiagonalstruktur dargestellte Abstandsmatrix mit den geringsten Abständen innerhalb einer Szene aufzuteilen.
-
In verschiedenen Ausführungsformen umfassen die Szenen eines Videos eine oder mehrere Aufnahmen, und jede Aufnahme der Szene wird durch eine Mehrzahl von Merkmalsvektoren dargestellt. Eine Sequenz von N Merkmalsvektoren wird als
bezeichnet. Eine Partitionierung der Sequenz in K Gruppen wird durch t = (t
1, ..., t
k) bereitgestellt, wobei t E N den Index des letzten Merkmalsvektors in der Gruppe i bezeichnet. Eine Abstandsmatrix D((x
1, x
2) misst die Unähnlichkeit zwischen zwei Merkmalsvektoren. Diese Abstände (z.B. D) steuern eine Kostenfunktion H(
t) ∈ ℝ, die den Verlust einer gegebenen Aufteilung misst. In verschiedenen Ausführungsformen ermittelt das Programm zur Szenenaufteilung 122 die optimale Aufteilung von
durch Berechnen von t* = argmin (H).
-
In verschiedenen Ausführungsformen ist die zusätzliche Kostenfunktion für eine gegebene Aufteilung wie folgt definiert:
(z.B. Gleichung (1)), wobei die abgekürzte Schreibweise der doppelt indizierten Summe anzeigt, dass j
1 und j
2 von t
1-1 + 1 bis t
i gehen. Das Modell für maschinelles Lernen 124 summiert alle Abstände innerhalb der Gruppe für alle Gruppen in der Aufteilung, wobei diese Summe eine niedrigwertige Blockdiagonalstruktur misst.
-
In verschiedenen Ausführungsformen verwendet das Programm zur optimalen Sequenzgruppierung 126 die folgende rekursive dynamische Programmiertabelle, um die optimale Aufteilung t* zu erhalten:
(z.B. Gleichung (2)). In verschiedenen Ausführungsformen bezeichnet C(n, k) die optimalen Kosten beim Aufteilen von
in k Gruppen. Das Programm zur Szenenaufteilung 122 ermittelt die besten Kosten für das Aufteilen einer Teilsequenz, die bei Index n beginnt, wobei i die Stelle des ersten Aufteilungspunkts für die Teilsequenz ist. Das Programm zur optimalen Sequenzgruppierung 126 bildet die Blockdiagonalstruktur mit absteigendem n (z.B. immer längere Sequenzen) und aufsteigendem k (z.B. steigende Anzahl von Aufteilungen), um die Teillösungen zusammenzufassen. Das Ergebnis der Berechnung ist C(1, K) = H(t*), und das Programm zur optimalen Sequenzgruppierung 126 rekonstruiert t*, indem es die Indizes der gewählten Aufteilungen aus Gleichung (2) speichert.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung schätzt das Programm zur optimalen Sequenzgruppierung 126 die Anzahl der Aufteilungen von K, indem es entweder einen logarithmischen Bogenansatz, eine Lückenstatistik oder ein anderes in der Technik bekanntes Schätzverfahren verwendet, um die Anzahl der Cluster in einem gegebenen Datenpunkt zu schätzen.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung schätzt das Programm zur optimalen Sequenzgruppierung 126 die Anzahl der Aufteilungen von K unter Verwendung eines logarithmischen Bogenansatzes. In verschiedenen Ausführungsformen berechnet das Programm zur optimalen Sequenzgruppierung 126 die Einzelwerte der Abstandsmatrix, und es wird ein Graph der logarithmischen Werte analysiert. In einigen Ausführungsformen sind ein oder mehrere Punkte eines Plateaus auf dem Graphen vorhanden, wobei der eine oder die mehreren Punkte eines Plateaus die Anzahl der Blöcke mit Intuition vom Durchführen einer Matrix-Approximation mit niedrigem Rang darstellen. In verschiedenen Ausführungsformen ermittelt das Programm zur optimalen Sequenzgruppierung 126 die Plateaupunkte von der logarithmischen Bogenschätzung, wobei s die logarithmischen Einzelwerte der Länge N darstellt, und das Programm zur optimalen Sequenzgruppierung 126 den Index jedes Wertes als die erste Dimension betrachtet. Der Vektor I
i = [i, s
i]
T stellt die Werte des Graphen dar, und die Diagonale wird durch H = [N - 1, s
N - s
1]
T dargestellt. Zusätzlich verwendet das Programm zur optimalen Sequenzgruppierung 126 einen euklidischen Abstand zu jedem Punkt und identifiziert den Index des Plateaupunktes als:
(z.B. Gleichung (3)).
-
In verschiedenen Ausführungsformen umfasst das Programm zur optimalen Sequenzgruppierung 126 mehrere Modalitäten, wobei der Abstand jeder Modalität in der Blockdiagonalstruktur verwendet wird, um eine Tabelle C
x, C
y zu erstellen, wobei das tiefgestellte Zeichen die Modalität angibt und
eine zusätzliche Modalität darstellt. In verschiedenen Ausführungsformen wählt das Programm zur optimalen Sequenzgruppierung 126 nicht den Aufteilungspunkt, der die niedrigsten Kosten für eine einzelne Modalität ergibt, sondern die Modalität, die einen ausgeprägteren Aufteilungspunkt aufweist. In verschiedenen Ausführungsformen definiert das Programm zur Szenenaufteilung 122
(z.B. Gleichung (4)), wobei
die Minimalfunktion von Gleichung (2) darstellt. In verschiedenen Ausführungsformen normalisiert das Programm zur Szenenaufteilung 122
um die relative Aufteilungsneigung zu ermitteln:
(z.B. Gleichung (5)), wobei das Programm zur optimalen Sequenzgruppierung 126 berechnet, dass der Index gewählt wird als
-
In einigen Ausführungsformen verwendet das Programm zur optimalen Sequenzgruppierung 126 eine Kostennormalisierungsfunktion
(z.B. Gleichung (6)). In diesen Fällen berücksichtigt die Kostenfunktion die gleichen Abstände, normalisiert jedoch durch die Fläche der Blockdiagonale. Die Kostenfunktion der Gleichung (6) kann vorteilhafte mathematische Eigenschaften aufweisen. In einigen Ausführungsformen kann auf die Kostenfunktion der Gleichung (6) verzichtet werden, da sie die Lösung der dynamischen Programmierung zusätzlich komplex macht.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung folgt das Programm zur optimalen Sequenzgruppierung 126 den vorstehend genannten Berechnungen der Gleichungen (1) bis (5), um die Blockdiagonalstruktur in der Abstandsmatrix zu stärken. In verschiedenen Ausführungsformen wendet das Programm zur optimalen Sequenzgruppierung 126 einen Blockdiagonalverlust an, um die Blockdiagonalstruktur in der Abstandsmatrix zu stärken.
-
In verschiedenen Ausführungsformen ermöglicht ein Anwenden eines Triplettverlustes ein Lernen des Algorithmus zur optimalen Sequenzgruppierung mithilfe von Einbetten. Der Triplettverlust lernt eine Merkmalsraumeinbettung, bei der Proben aus derselben Klasse im Merkmalsraum nahe beieinander liegen, während Proben aus anderen Klassen weiter voneinander entfernt sind, und ermöglicht es weiterhin, Proben von Videoszenen zu einem Cluster zusammenzufassen. In verschiedenen Ausführungsformen werden beim Einbetten, bei dem die Aufnahmen in Szenen zu Clustern zusammengefasst werden, die Abstände innerhalb einer Szene im Vergleich zu den Abständen zwischen den Szenen verringert, damit der Algorithmus zur optimalen Sequenzgruppierung die Szenen richtig aufteilen kann. In einigen Ausführungsformen gibt L(x
i) ∈ [1, K] die Anzahl der Szenen an, denen der Merkmalsvektor x
i zugehörig ist. In verschiedenen Ausführungsformen werden die Parameter des neuronalen Netzwerks durch Minimieren des Triplettverlustes
(z.B. Gleichung (7)) erlernt. In verschiedenen Ausführungsformen werden für x
i ein positives und ein negatives Paar gewählt, wobei
und wobei α ein Randparameter ist. In einigen Ausführungsformen werden die Proben nach einem semifesten Ansatz ausgewählt, bei dem die Triplets, die die Bedingung von
erfüllen, ausgewählt werden. In einigen Ausführungsformen kann die Triplettverlustfunktion den Algorithmus zur optimalen Sequenzgruppierung bei der Aufteilung verbessern. In einigen Ausführungsformen hat jedoch der Aufteilungswahrscheinlichkeitsverlust wie nachstehend definiert eine weitere Verbesserung des Algorithmus zur Folge.
-
In verschiedenen Ausführungsformen stellt das Programm zur optimalen Sequenzgruppierung 126 die Abstandswerte in einer Matrix D dar, wobei die i-te Zeile und die j-te Spalte als D
i,j = D(x
i, x
j) dargestellt werden, dann definiert das Programm zur Szenenaufteilung 122 die optimale D* als:
(z.B. Gleichung (8)). In diesen Ausführungsformen ist 0 der Mindestabstand, der Merkmalen aus derselben Szene zugeordnet wird, und 1 ist der maximale Abstand für Merkmale aus anderen Szenen. In verschiedenen Ausführungsformen bringt das Programm zur optimalen Sequenzgruppierung 126 D zu D*, um wie vorstehend genannt die optimale Sequenzgruppierung zu verbessern, um die korrekte Aufteilung der Szenen des Videos zu berechnen. In verschiedenen Ausführungsformen berechnet das Programm zur optimalen Sequenzgruppierung 126 den Verlust mithilfe der Frobeniusnorm der Subtraktion von Matrix
(z.B. Gleichung (9)).
-
Ausführungsformen der vorliegenden Erfindung stellen bereit, dass die aus der Szenenaufteilung des Videos extrahierten Merkmale durch das vollständig verbundene neuronale Netzwerk geleitet werden, das ein Einbetten ausgibt. In verschiedenen Ausführungsformen wird das Einbetten mithilfe des Algorithmus zur optimalen Sequenzgruppierung berechnet, wobei die Aufteilung der Videoszenen ermittelt wird. Das Programm zur optimalen Sequenzgruppierung 126 berechnet den Verlust, indem es den Fehler bei der Aufteilung der Videoszenen misst, wobei das Programm zur optimalen Sequenzgruppierung 126 den Verlust durch den Algorithmus zur optimalen Sequenzgruppierung rückwärtspropagiert, anstatt den Verlust direkt in die Einbettungsausgabe zu integrieren.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung berücksichtigt das Programm zur optimalen Sequenzgruppierung 126 nicht die Abstände zwischen Szenen, die nicht benachbart sind (z.B. an den OSG-Block angrenzend). In verschiedenen Ausführungsformen können verschiedene Szenen im Video einander sehr ähnlich sein, doch die Abstände zwischen den semantischen zeitlichen Kapiteln der Szenen oder einer dazwischenliegenden Szene zeigen ihre Unterschiedlichkeit an. In verschiedenen Ausführungsformen akkumuliert die Kostenfunktion von Gleichung (1) die inneren Werte der Blockdiagonalstruktur, wobei die weit außerhalb der Diagonale liegenden Werte die Entscheidung zum Berechnen der korrekten Aufteilung der Szenen des Videos nicht beeinflussen, solange die Werte des zeitlichen Abstands von Gleichung (1) groß genug sind. In verschiedenen Ausführungsformen empfängt der Blockdiagonalverlust nur einen Teilsatz der Werte von Gleichung (1). In verschiedenen Ausführungsformen von Gleichung (9) führt j nur Werte aus, die die Beschränkung von L(xi) - 1 ≤ L(xj) ≤ L(xi) + 1 erfüllen, wobei nur die Abstände innerhalb einer Szene und die Abstände zwischen Merkmalsvektoren der Blockdiagonalstruktur, die zu benachbarten Szenen gehören, vom Programm zur Szenenaufteilung 122 berücksichtigt werden.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung folgt das Programm zur optimalen Sequenzgruppierung 126 den oben genannten Berechnungen der Gleichungen (1) bis (5), um direkt von der optimalen Sequenzgruppierung zu lernen und die Leistung des Algorithmus zur optimalen Sequenzgruppierung zu verbessern. In verschiedenen Ausführungsformen ändert das Programm zur optimalen Sequenzgruppierung 126 die Gleichungen (1) bis (5), um Aufteilungswahrscheinlichkeiten in der Abstandsmatrix zu berechnen. Als Reaktion darauf lernt das Programm zur optimalen Sequenzgruppierung 126, die Wahrscheinlichkeit zu erhöhen, dass die Szenen an der richtigen Stelle aufgeteilt werden. In verschiedenen Ausführungsformen verwendet das Programm zur optimalen Sequenzgruppierung 126 Gleichung (2), um die optimalen Stellen für die Szenenaufteilung zu berechnen. Das Programm zur optimalen Sequenzgruppierung 126 verwendet außerdem Gleichung (4) und behält die relativen Tendenzen für Szenenaufteilungen bei. Anstelle von Gleichung (5) erzeugt das Programm zur optimalen Sequenzgruppierung 126 jedoch den Wahrscheinlichkeitsvektor, der einen festgelegten Softmin-Operator umfasst, und fasst die Werte in einer größeren Tabelle zusammen:
(z.B. Gleichung (10)). In verschiedenen Ausführungsformen berechnet das Programm zur optimalen Sequenzgruppierung 126 die Werte dieser Tabelle und stellt die Wahrscheinlichkeit dar, das Video am Punkt i aufzuteilen, wenn
in k Szenen aufgeteilt wird. Das Programm zur optimalen Sequenzgruppierung 126 mittelt die Wahrscheinlichkeiten in Gleichung (10) über n und k und erzeugt einen Vektor von Bewertungen für die Aufteilung von Szenen an jeder Stelle im Video, was wie folgt dargestellt wird:
(z.B. Gleichung (11)). In verschiedenen Ausführungsformen verwendet das Programm zur optimalen Sequenzgruppierung 126 einen Kreuzentropieverlust in den Wahrscheinlichkeiten von Gleichung (11) an den Indizes, an denen eine Aufteilung gekennzeichnet ist als:
(z.B. Gleichung (12)). In verschiedenen Ausführungsformen berechnet das Programm zur optimalen Sequenzgruppierung 126, dass verschiedene Aufteilungen der Szenen zu einer hohen durchschnittlichen Wahrscheinlichkeit führen, die auf eine Aufteilung bei diesem Index hindeutet.
-
Ausführungsformen der vorliegenden Erfindung stellen ein System bereit, das Triplettverluste, Blockdiagonalverluste und insbesondere Aufteilungswahrscheinlichkeitsverluste umfasst, die auf ein neuronales Netzwerk zum Lernen angewendet werden, das der Videoszenenerkennung zugehörig ist. In verschiedenen Ausführungsformen zielen Triplettverlust und Blockdiagonalverlust darauf ab, die Abstände zwischen Aufnahmen aus derselben Szene zu minimieren und die Abstände zwischen Aufnahmen, die zu anderen Szenen gehören, zu vergrößern. Ein Unterschied zwischen Triplettverlust und Blockdiagonalverlust besteht darin, dass ein Blockdiagonalverlust darauf abzielt, die Blockdiagonalstruktur zu stärken, um die Leistung des Algorithmus zur optimalen Sequenzgruppierung zu verbessern. Triplettverluste beziehen sich auf Abstandsproben, Blockdiagonalverluste hingegen auf die gesamte Struktur.
-
In verschiedenen Ausführungsformen wirken sich die drei Verluste auf die Gradienten der Abstandsmatrix aus. In einigen Ausführungsformen ist ein Triplettverlust von einzelnen Abstandswerten abhängig, ein Blockdiagonalverlust legt den Schwerpunkt auf die gesamte Blockdiagonalstruktur der Ground-Truth-Szenen, und ein Aufteilungswahrscheinlichkeitsverlust hat eine lokale Auswirkung, die sich auf die Aufteilungspunkte bezieht. Für einen Aufteilungswahrscheinlichkeitsverlust ist dies ein direktes Ergebnis des Ansatzes, der sich auf den Wert der durchschnittlichen Wahrscheinlichkeit der Szenenaufteilung bezieht.
-
Ausführungsformen der vorliegenden Erfindung stellen einen Aufteilungswahrscheinlichkeitsverlust bereit, der eine Konfiguration aufweist, die im Gegensatz zur Blockdiagonalstruktur auf Aufteilungsstellen angewiesen ist. Eine solche Struktur ermöglicht es, den Algorithmus zur optimalen Sequenzgruppierung in ein größeres lernendes neuronales Netzwerkmodell zu integrieren. In verschiedenen Ausführungsformen summiert der Aufteilungswahrscheinlichkeitsverlust alle Werte von n und k bei der Bildung von T. Wenn i eine Ground-Truth-Aufteilungsstelle ist, es aber zusätzliche Ground-Truth-Aufteilungen zwischen n und i gibt, sollte C(n, k, i) in einigen Ausführungsformen kein großer Wert sein. In verschiedenen Ausführungsformen enthält G
n,k (i) die optimalen Kosten, wenn die erste Aufteilung nach n und i erfolgt und in k Gruppen aufgeteilt wird. Wenn es eine Ground-Truth-Szene vor i gibt oder wenn
in mehr als oder weniger als k Szenen aufgeteilt werden soll, können wir nicht erwarten, dass die Wahrscheinlichkeit für eine Aufteilung hoch ist. In einigen Ausführungsformen kann das Netzwerk auf diese Weise reduzierte Abstandswerte außerhalb der Blockdiagonalstruktur erlernen.
-
2 ist ein Ablaufplan 200, der die Operationen des Szenenaufteilungsprogramms 122 in der Datenverarbeitungsumgebung 100 gemäß einer veranschaulichenden Ausführungsform der vorliegenden Erfindung darstellt. 2 stellt auch bestimmte Interaktionen zwischen dem Modell für maschinelles Lernen 124 und der Serveranwendung 132 dar. In einigen Ausführungsformen enthalten die in 2 dargestellten Operationen die Ausgabe bestimmter logischer Operationen des Programms zur optimalen Sequenzgruppierung 126, das in dem Computersystem 120 ausgeführt wird. Es sei darauf hingewiesen, dass 2 eine Darstellung einer Implementierung bereitstellt und keine Einschränkungen in Bezug auf die Umgebungen impliziert, in denen verschiedene Ausführungsformen implementiert werden können. An der dargestellten Umgebung können zahlreiche Änderungen vorgenommen werden. In einer Ausführungsform können die in 2 aufeinanderfolgend dargestellten Operationen in beliebiger Reihenfolge durchgeführt werden. In einer weiteren Ausführungsform können die in 2 aufeinanderfolgend dargestellten Operationen gleichzeitig durchgeführt werden. Darüber hinaus können die in 2 dargestellten aufeinanderfolgenden Operationen bei jeder Operation beendet werden. Zusätzlich zu den bereits erwähnten Merkmalen können alle in 2 dargestellten Operationen jederzeit wieder aufgenommen werden.
-
In einigen Ausführungsformen teilt das Modell für maschinelles Lernen 124 eine Videodatei in semantische zeitliche Kapitel auf, wobei das Modell für maschinelles Lernen 124 eine optimale Sequenzgruppierung und Module für tiefes Lernen verwendet, um auf der Grundlage einer Abstandsmatrix, die durch eine vom Modell für maschinelles Lernen 124 ausgegebene Blockdiagonalstruktur dargestellt wird, Ähnlichkeiten von Videoaufnahmen und/oder -szenen (z.B. semantische zeitliche Kapitel) zu einem Cluster zusammenzufassen und zu identifizieren, ohne jedoch darauf beschränkt zu sein.
-
In Operation 202 analysiert das Programm zur Szenenaufteilung 122 die Videosegmente der Videodatei. In verschiedenen Ausführungsformen empfängt das Programm zur Szenenaufteilung 122 eine Videodatei von der Datenbank 134.
-
In Operation 204 codiert das Programm zur Szenenaufteilung 122 die visuellen und akustischen Videokomponenten der Videosegmente und Vektoren für eine Eingabe in das Modell für maschinelles Lernen 124 (z.B. ein neuronales Netzwerk für tiefes Lernen). In verschiedenen Ausführungsformen verwendet das Programm zur Szenenaufteilung 122 eine vortrainierte Inception-V3-Architektur, die einen visuellen Backbone-Merkmalsextraktor mit 2048 Dimensionen umfasst. In einigen Ausführungsformen extrahiert das Programm zur Szenenaufteilung 122 Merkmale, die in der Aufnahme des Videos vorhandene Objekte, Personen, Wettermuster, Aktivitäten (z.B. Reisen, Mahlzeiten usw.), Auslöser von Emotionen usw. umfassen, ohne auf diese beschränkt zu sein. In verschiedenen Ausführungsformen codiert das Programm zur Szenenaufteilung 122 außerdem die mit den Videosegmenten verbundenen Audiosegmente in Vektoren mit 128 Dimensionen. Ausführungsformen der vorliegenden Erfindung berücksichtigen, dass ein Codieren der Video- und Audiosegmente in Vektoren mit 2048 bzw. 128 Dimensionen für die Zwecke des neuronalen Netzwerks für tiefes Lernen erforderlich ist. Das Modell für maschinelles Lernen 124 verbindet vier Schichten eines neuronalen Netzwerks (z.B. 3.000, 3.000, 1.000, 100) für visuelle Segmente und vier Schichten eines neuronalen Netzwerks (z.B. 200, 200, 100, 20) für akustische Segmente. In verschiedenen Ausführungsformen wendet das Modell für maschinelles Lernen 124 die Stapelnormalisierung auf alle Schichten innerhalb des neuronalen Netzwerks für tiefes Lernen an, und das Modell für maschinelles Lernen 124 wendet ReLU-Aktivierungen auf alle Schichten des neuronalen Netzwerks für tiefes Lernen mit Ausnahme der Ausgabeschicht an.
-
In Operation 206 stellt das Programm zur Szenenaufteilung 122 die codierten Video- und Audiosegmentvektoren dem trainierten neuronalen Netzwerk für tiefes Lernen bereit. Bei dieser Operation empfängt das Modell für maschinelles Lernen 124 (z.B. das neuronale Netzwerk für tiefes Lernen) die jeweiligen Vektoren für die Video- und Audiosegmente der Videodatei als Eingabe. Daraufhin erzeugt das Modell für maschinelles Lernen 124 als Ausgabe Merkmalsvektoren für Aufnahmen, die im Allgemeinen auf der Grundlage einer Wahrscheinlichkeit gruppiert werden, dass sich die Aufnahmen in derselben Szene befinden. In diesen Ausführungsformen ist es zum Beispiel wahrscheinlich, dass Aufnahmen, deren Vektoren relativ nahe beieinander liegen, zur selben Szene gehören.
-
In verschiedenen Ausführungsformen trainiert das Programm zur Szenenaufteilung 122 zunächst das Modell für maschinelles Lernen 124 mithilfe von annotierten Videoszenen-Datensätzen, die, ohne darauf beschränkt zu sein, einen offenen Videoszenenerkennungsdatensatz (open video scene detection - OVSD) umfassen, um die Videosegmente der Videodatei zu erkennen.
-
In Operation 208 erzeugt das Programm zur Szenenaufteilung 122 eine Abstandsmatrix anhand der Ausgabe des Modells für maschinelles Lernen 124 (d.h. aus den Merkmalsvektoren der Aufnahmen). In verschiedenen Ausführungsformen wird zumindest teilweise auf der Grundlage der Abstandsmatrix eine Blockdiagonalstruktur erzeugt. In verschiedenen Ausführungsformen erzeugt das Programm zur Szenenaufteilung 122 die Blockdiagonalstruktur, wobei Aufnahmen mit einer höheren relativen Ähnlichkeit eine hellere Intensität zugewiesen wird als Aufnahmen, die weniger ähnlich sind. In verschiedenen Ausführungsformen stellt der Abstand zwischen den einzelnen Diagonalblöcken eine Folge von Aufnahmen dar. In einigen Ausführungsformen ist ein dunkler Block eine Folge von Aufnahmen mit geringen Abständen zueinander, was auf eine Szene des Videos hindeuten kann. In nachfolgenden Operationen, die nachstehend erörtert werden, nutzt das Programm zur Szenenaufteilung 122 die durch eine Blockdiagonalstruktur dargestellte Abstandsmatrix und wendet eine multimodale optimale Sequenzgruppierung an (z.B. das Programm zur optimalen Sequenzgruppierung 126), um die Genauigkeiten des visuellen und akustischen Einbettens und der Darstellung der Abstandsmatrix der verschiedenen Aufnahmen innerhalb der Videodatei weiterhin zu verbessern. In verschiedenen Ausführungsformen werden die Gleichungen (1) bis (6) (z.B. multimodale optimale Sequenzgruppierung) auf die Daten der Merkmalsvektoren angewendet, die durch die Blockdiagonalstruktur dargestellt werden, die die Abstände zwischen den Aufnahmen des Videos bereitstellt.
-
3 ist ein Ablaufplan, der gemäß einer veranschaulichenden Ausführungsform der vorliegenden Erfindung auf der Grundlage einer empfangenen Abstandsmatrix für die Datenverarbeitungsumgebung 100 Operationen zum Ermitteln von Szenengrenzen darstellt. In dieser Ausführungsform stellt 3 die allgemeinen Operationen 300 des Programms zur Szenenaufteilung 122 dar, das auf dem Computersystem 120 ausgeführt wird. 3 stellt auch bestimmte Interaktionen zwischen dem Modell für maschinelles Lernen 124 und der Serveranwendung 132 dar. Weiterhin können die Operationen 300 einen Teil oder die Gesamtheit der kombinierten Gesamtoperationen von 200 umfassen. In verschiedenen Ausführungsformen kann die Reihe von Operationen 300 gleichzeitig mit den
Operationen 200 durchgeführt werden. Es sei darauf hingewiesen, dass 3 eine Darstellung einer Implementierung bereitstellt und keine Einschränkungen in Bezug auf die Umgebungen impliziert, in denen verschiedene Ausführungsformen implementiert werden können. An der dargestellten Umgebung können zahlreiche Änderungen vorgenommen werden. In einer Ausführungsform können die in 3 aufeinanderfolgend dargestellten Operationen in beliebiger Reihenfolge durchgeführt werden. In einer weiteren Ausführungsform können die in 3 aufeinanderfolgend dargestellten Operationen gleichzeitig durchgeführt werden. Darüber hinaus können die in 3 dargestellten aufeinanderfolgenden Operationen bei jeder Operation beendet werden. Zusätzlich zu den bereits erwähnten Merkmalen können alle in 3 dargestellten Operationen jederzeit wieder aufgenommen werden.
-
In Operation 302 ermittelt das Programm zur optimalen Sequenzgruppierung 126 auf der Grundlage der in Operation 208 erzeugten Abstandsmatrix die optimale Sequenzgruppierung und die Wahrscheinlichkeit des Aufteilungsverlustes. In verschiedenen Ausführungsformen ermittelt das Programm zur optimalen Sequenzgruppierung 126 anhand der Abstandsmatrix verschiedene Sequenzen von Aufnahmen, die ähnliche, aus den Videoszenen extrahierte Merkmale aufweisen. Weiterhin identifiziert das Programm zur optimalen Sequenzgruppierung 126 einen oder mehrere Blöcke aus der Diagonalblockstruktur, die niedrigere Werte darstellen, die die Wahrscheinlichkeit einer Szene anzeigen, die eine Mehrzahl von Aufnahmen umfasst. Ausführungsformen der vorliegenden Erfindung stellen bereit, dass die Diagonalblockstruktur die visuelle Darstellung der Abstandsmatrix ist, und die Abstandsmatrix Werte darstellt, die die Abstände innerhalb der Videoszenen repräsentieren. In verschiedenen Ausführungsformen verwendet das Programm zur optimalen Sequenzgruppierung 126 die Gleichungen (1) bis (5), um die Werte der normalisierten Kostenfunktion zumindest auf der Grundlage der ermittelten Szenenabstände zu berechnen. Zusätzlich verwendet das Programm zur optimalen Sequenzgruppierung 126 die anhand der Gleichungen (1) bis (5) berechneten Werte und setzt diese in die Gleichungen (10) bis (12) ein, um die Werte für den Wahrscheinlichkeitsaufteilungsverlust zu berechnen. Ausführungsformen der vorliegenden Erfindung stellen bereit, dass das Programm zur optimalen Sequenzgruppierung 126 die Werte des Wahrscheinlichkeitsaufteilungsverlustes verwendet, um das Modell für maschinelles Lernen weiter zu trainieren und die Vorhersage der Videoszenenerkennung zu verbessern.
-
In verschiedenen Ausführungsformen wendet das Programm zur optimalen Sequenzgruppierung 126 OSG-Prob auf die Szenenaufteilung an. In verschiedenen Ausführungsformen berechnet das Programm zur optimalen Sequenzgruppierung 126 anhand der Gleichungen (10) bis (12) die Wahrscheinlichkeit der Aufteilung an der richtigen Stelle in der Abstandsmatrix. In einigen Ausführungsformen ermittelt das Programm zur optimalen Sequenzgruppierung 126 einen Fehler in den verschiedenen Aufteilungen der Szenen in der Abstandsmatrix. Wie im Zusammenhang mit den nachstehend erörterten Operationen dargelegt wird, propagiert das Programm zur optimalen
Sequenzgruppierung 126 den Fehler in den Aufteilungen der Szenen durch das Modell für maschinelles Lernen rückwärts, um neue Ausgabeeinbettungen zu erzeugen, wobei der Verlust die Änderungen beim Lernen des neuronalen Netzwerks widerspiegelt. In verschiedenen Ausführungsformen lernt das Programm zur optimalen Sequenzgruppierung 126 durch den Aufteilungswahrscheinlichkeitsverlust und ermittelt die Aufteilung der Szenen an genaueren Stellen und erzeugt eine bessere Abstandsmatrix, die in der Blockdiagonalstruktur besser definierte Blöcke einer Folge von Aufnahmen darstellt.
-
In Operation 304 trainiert das Modell für maschinelles Lernen 124 nach Ermitteln der optimalen Sequenzgruppierung und Durchführen des Wahrscheinlichkeitsaufteilungsverlustes das neuronale Netzwerk für tiefes Lernen unter Verwendung der optimalen Sequenzgruppierung und des Wahrscheinlichkeitsaufteilungsverlustes. In verschiedenen Ausführungsformen wendet das Programm 122 den Wahrscheinlichkeitsaufteilungsverlust auf die ursprüngliche Ausgabe des neuronalen Netzwerks für tiefes Lernen an und verwendet dann die aktualisierte Ausgabe zum Trainieren des neuronalen Netzwerks für tiefes Lernen über Rückwärtspropagierung. In verschiedenen Ausführungsformen lernt das Modell für maschinelles Lernen 124 anhand der Daten der Aufnahmen der Videodatei, nachdem die Daten der Aufnahmen auf der Grundlage der optimalen Sequenzgruppierung und des Wahrscheinlichkeitsaufteilungsverlustes aktualisiert worden sind.
-
In verschiedenen Ausführungsformen der vorliegenden Erfindung leitet das Programm zur Szenenaufteilung 122 die Merkmale der Videoaufnahme durch das erweiterte Modell für maschinelles Lernen 124 weiter, wobei der Wahrscheinlichkeitsaufteilungsverlust das Modell für maschinelles Lernen verbessert, wobei die Vektoren mit 2048 Dimensionen und die Vektoren mit 128 Dimensionen in entsprechende Merkmalsvektoren der Videoszenen codiert werden. In einigen Ausführungsformen erzeugt die Ausgabe des Modells für maschinelles Lernen ein verbessertes Einbetten, wobei das verbesserte Einbetten durch den Algorithmus für optimale Sequenzgruppierung wie oben genannt verarbeitet wird. In verschiedenen Ausführungsformen wird das Einbetten durch eine Merkmalsraumeinbettung dargestellt, bei der die Proben aus den Videoszenen in Bezug auf die aus den Videoszenen extrahierten Video- und Audiomerkmale relativ nahe beieinander liegen. Ausführungsformen der vorliegenden Erfindung stellen bereit, dass die Ausgabe des erweiterten Modells für maschinelles Lernen das erweiterte Einbetten umfasst, das die Abstände zwischen den Videoszenen darstellt.
-
Ausführungsformen der vorliegenden Erfindung stellen bereit, dass beim Trainieren des neuronalen Netzwerks für tiefes Lernen das Programm zur Szenenaufteilung 122 dem neuronalen Netzwerk für tiefes Lernen des Modells für maschinelles Lernen 124 (i) die ursprünglichen Audio- und Video-Merkmalsvektoren, die in Operation 204 codiert wurden, und (ii) den Aufteilungswahrscheinlichkeitsverlust, der anhand der Gleichungen (10) bis (12) berechnet und auf die ursprüngliche Ausgabe des neuronalen Netzwerks für tiefes Lernen angewendet wurde, bereitstellt. In verschiedenen Ausführungsformen verwendet das Programm zur Szenenaufteilung 122 die aktualisierten Merkmalsvektoren, die durch den Aufteilungswahrscheinlichkeitsverlust dargestellt werden, um das Modell für maschinelles Lernen 124 zu trainieren, um die Ähnlichkeit zwischen den Videoszenen genauer zu ermitteln. In verschiedenen Ausführungsformen ermittelt das verbesserte Modell für maschinelles Lernen Videoszenen, die eine größere Ähnlichkeit aufweisen als verschiedene andere ähnlichere Videoszenen (z.B. Trennen von Szenen eines Films). In verschiedenen Ausführungsformen stellt das Modell für maschinelles Lernen 124 dem verbesserten Modell für maschinelles Lernen dann die ursprünglich codierten Merkmalsvektoren der Audio- und Videodatei bereit. In verschiedenen Ausführungsformen analysiert das Modell für maschinelles Lernen die ursprünglich codierten Merkmalsvektoren der Audio- und Videodatei und gibt ein aktualisiertes Einbetten der Merkmalsvektoren vom verbesserten Modell für maschinelles Lernen aus.
-
In verschiedenen Ausführungsformen erzeugt das Modell für maschinelles Lernen 124 eine neue Abstandsmatrix, die eine Darstellung der Abstände zwischen den Videoszenen bereitstellt. In verschiedenen Ausführungsformen wendet das Modell für maschinelles Lernen eine zusätzliche multimodale optimale Sequenzgruppierung auf die Abstandsmatrix (z.B. das Ausgabeeinbetten) an, um Szenenaufteilungswahrscheinlichkeiten auf der Grundlage einer Vektornähe zu ermitteln.
-
In Operation 306 ermittelt das Programm zur optimalen Sequenzgruppierung 126 die Szenengrenzen (t). In verschiedenen Ausführungsformen verwendet das Programm zur optimalen Sequenzgruppierung 126 das verbesserte Einbetten, das als Ausgabe des Modells für maschinelles Lernen 124 erzeugt wurde, und erzeugt eine verbesserte Blockdiagonalstruktur. In verschiedenen Ausführungsformen ermittelt das Modell für maschinelles Lernen zumindest auf der Grundlage der Blockdiagonalstruktur die Abstände zwischen Videoszenen. In verschiedenen Ausführungsformen empfängt das Programm zur optimalen Sequenzgruppierung 126 mindestens eine zweite verbesserte Blockdiagonalstruktur von dem verbesserten trainierten Modell für maschinelles Lernen (z.B. dem Modell für maschinelles Lernen 124) und berechnet wiederum einen Endwert mithilfe der Gleichungen (1) bis (6). Die gelöste Gleichung (6) stellt die Szenengrenzen (t) für die Videoszenen bereit, die eine genaue und verbesserte Darstellung der Abstände zwischen den Videoszenen und der Ähnlichkeit der Videoszenen untereinander veranschaulichen.
-
4 ist ein Ablaufplan, in dem Operationen zum Erzeugen, Ändern, Nutzen und/oder Ausführen eines neuronalen Netzwerks für tiefes Lernen für die Datenverarbeitungsumgebung 100 gemäß einer veranschaulichenden Ausführungsform der vorliegenden Erfindung dargestellt sind. In dieser Ausführungsform stellt 4 insbesondere die allgemeinen Operationen 400 des Programms zur Szenenaufteilung 122 dar, das auf dem Computersystem 120 ausgeführt wird. 4 stellt auch bestimmte Interaktionen zwischen dem Modell für maschinelles Lernen 124 und der Serveranwendung 132 dar. Weiterhin können die Operationen 400 einen Teil oder die Gesamtheit der kombinierten Gesamtoperationen von 200 und die Operationen von 300 umfassen. Es sei darauf hingewiesen, dass 4 eine Darstellung einer Implementierung bereitstellt und keine Einschränkungen in Bezug auf die Umgebungen impliziert, in denen verschiedene Ausführungsformen implementiert werden können. An der dargestellten Umgebung können zahlreiche Änderungen vorgenommen werden. In einer Ausführungsform können die in 4 aufeinanderfolgend dargestellten Operationen in beliebiger Reihenfolge durchgeführt werden. In einer weiteren Ausführungsform können die in 4 aufeinanderfolgend dargestellten Operationen gleichzeitig durchgeführt werden. Darüber hinaus können die in 4 dargestellten aufeinanderfolgenden Operationen bei jeder Operation beendet werden. Zusätzlich zu den bereits erwähnten Merkmalen können alle in 4 dargestellten Operationen jederzeit wieder aufgenommen werden.
-
In Operation 402 trainiert das Modell für maschinelles Lernen 124 das neuronale Netzwerk wie vorstehend beschrieben. In verschiedenen Ausführungsformen verwendet das Modell für maschinelles Lernen 124 eine Inception-V3-Architektur als visuellen Backbone-Merkmalsextraktor mit 2048 Dimensionen für eine Videoanalyse und ein VGGish-Netzwerk zum Codieren von Audiosegmenten in Vektoren mit 128 Dimensionen. In verschiedenen Ausführungsformen werden vier vollständig verbundene Schichten des neuronalen Netzwerks verwendet, um die Videoszenenaufteilung in semantische zeitliche Kapitel durchzuführen. In einigen Ausführungsformen werden vier Schichten für visuelles Lernen (z.B. 3.000, 3.000, 1.000, 100 Neuronen) und vier Schichten für Audio-Lernen (z. B. 200, 200, 100, 20 Neuronen) verwendet. In verschiedenen Ausführungsformen wendet das Modell für maschinelles Lernen 124 eine Stapelnormalisierung auf mindestens die vier Schichten für visuelles Lernen und die vier Schichten für Audio-Lernen an. Darüber hinaus wendet das Modell für maschinelles Lernen 124 in verschiedenen Ausführungsformen ReLU-Aktivierungen auf alle Schichten des neuronalen Netzwerks mit Ausnahme der Ausgabeschicht an. In verschiedenen Ausführungsformen nutzt das Modell für maschinelles Lernen 124 einen Optimierungsrahmen, um das neuronale Netzwerk mit einer Lernrate von 5 × 10-3 zu trainieren. Wie vorstehend erläutert, ist einem Fachmann klar, dass die Lernrate ein Verhältnis ohne Einheit ist, mit dem der Gradient multipliziert wird. Das Modell für maschinelles Lernen 124 wendet ein Abbruchkriterium an, um eine Überanpassung des neuronalen Netzwerks zu vermeiden, und das Trainingsmodul des neuronalen Netzwerks wird abgebrochen, wenn der Trainingsverlust auf 25 % des Anfangswertes gesunken ist. Zusätzlich normalisiert das Modell für maschinelles Lernen 124 den Kosinusabstand (Δ) der vorstehenden Gleichung (7) auf einen Wert zwischen 0 und 1. Der Randparameter (α), der Wertparameter von Gleichung (7), wird auf 0,5 festgelegt, und das Modell für maschinelles Lernen 124 verwendet einen logarithmischen Bogenansatz wie nachstehend definiert, um die Anzahl von Szenen aus der Videodatei (z.B. semantische zeitliche Kapitel) zu schätzen. Einem Fachmann ist klar, dass ein Optimierungsrahmen einen Gradientenabstieg oder eine ADAM-Optimierung zum Lernen der Parameter des Modells für maschinelles Lernen umfasst, ohne darauf beschränkt zu sein.
-
In verschiedenen Ausführungsformen empfängt das Programm zur Szenenaufteilung 122 eine Videodatei, die visuelle und akustische Komponenten umfasst, ohne auf diese beschränkt zu sein. Das Programm zur Szenenaufteilung 122 codiert die Video- und Audiokomponenten in entsprechende Merkmalsvektoren, und das Programm zur Szenenaufteilung 122 stellt die codierten Merkmalsvektoren dem Modell für maschinelles Lernen 124 bereit, um das Modell für maschinelles Lernen zu trainieren. In verschiedenen Ausführungsformen analysiert das Modell für maschinelles Lernen 124 die Merkmalsvektoren der Video- und Audiokomponenten und lernt daraus und identifiziert die Ähnlichkeit zwischen Videoszenen.
-
In Operation 404 ermittelt das Programm zur optimalen Sequenzgruppierung 126 die Ausgabeeinbettung. In verschiedenen Ausführungsformen werden die aus der Szenenaufteilung des Videos extrahierten Merkmale durch das vollständig verbundene neuronale Netzwerk geleitet, das ein Einbetten ausgibt. In verschiedenen Ausführungsformen wird das Einbetten von dem Algorithmus zur optimalen Sequenzgruppierung verwendet, wobei die Aufteilung der Videoszenen ermittelt wird. Das Programm zur optimalen Sequenzgruppierung 126 berechnet den Verlust, indem es den Fehler bei der Aufteilung der Videoszenen misst, wobei das Programm zur optimalen Sequenzgruppierung 126 den Verlust durch den Algorithmus zur optimalen Sequenzgruppierung rückwärtspropagiert, anstatt den Verlust direkt in die Einbettungsausgabe zu integrieren.
-
In verschiedenen Ausführungsformen gibt das neuronale Netzwerk ein Einbetten in den Merkmalsraum aus, das ein visuelles und ein akustisches Einbetten der Videosegmente umfasst, ohne darauf beschränkt zu sein. Liegen Proben aus der gleichen Klasse (z.B. Videosegmente) im Merkmalsraum nahe beieinander, sind Proben aus unterschiedlichen Klassen (z.B. Videosegmente) weiter voneinander entfernt. Dadurch ist eine Rangfolge von Aufgaben möglich, doch bei einer Szenenaufteilung entsteht ein Triplettverlust, der dazu führt, dass die Proben zu Clustern zusammengefasst werden.
-
In Operation 406 erzeugt das Modell für maschinelles Lernen 124 die Abstandsmatrix. In verschiedenen Ausführungsformen teilt das Modell für maschinelles Lernen 124 ein Video in semantische zeitliche Kapitel auf, um eine Blockdiagonale der Abstandsmatrix zu erzeugen, wobei die Abstandsmatrix die Abstände innerhalb einer Szene darstellt. In verschiedenen Ausführungsformen wird die Ähnlichkeit von Szenen als Abstandsmatrix dargestellt, und im Allgemeinen wird eine Blockdiagonalstruktur erzeugt, um darzustellen, dass Aufnahmen, die zur gleichen Szene eines Videos gehören, wahrscheinlich niedrigere Abstandswerte haben als Aufnahmen, die zu anderen Szenen gehören. In verschiedenen Ausführungsformen verwendet das Modell für maschinelles Lernen 124 den Algorithmus zur optimalen Sequenzgruppierung, um die durch eine Blockdiagonalstruktur dargestellte Abstandsmatrix mit den geringsten Abständen innerhalb einer Szene aufzuteilen.
-
In Operation 408 berechnet das Programm zur optimalen Sequenzgruppierung 126 Szenenabstände mithilfe der multimodalen optimalen Sequenzgruppierung. Ausführungsformen der vorliegenden Erfindung stellen bereit, dass das Programm zur optimalen Sequenzgruppierung 126 die Werte mithilfe der Gleichungen (1) bis (6) berechnet, um die Szenengrenzen (t) zu ermitteln. Das Programm zur optimalen Sequenzgruppierung 126 verwendet die durch eine Blockdiagonalstruktur dargestellte Abstandsmatrix und wendet eine multimodale optimale Sequenzgruppierung an, um von den Daten zu lernen und so die Genauigkeiten des visuellen und akustischen Einbettens und der Darstellung der Abstandsmatrix der verschiedenen Aufnahmen innerhalb der Videodatei weiterhin zu verbessern.
-
In Operation 410 wendet das Programm zur Szenenaufteilung 122 einen Triplettverlust zurück durch das neuronale Netzwerk an. In verschiedenen Ausführungsformen erlernt maschinelles Lernen ein Einbetten in den Merkmalsraum, wobei Proben aus der gleichen Klasse im Merkmalsraum nahe beieinander liegen, während Proben aus unterschiedlichen Klassen weiter auseinander liegen. Ausführungsformen der vorliegenden Erfindung stellen bereit, dass das Programm zur Szenenaufteilung 122 die Abstände zwischen den Videosegmenten aus der gleichen Szene zu minimieren und die Abstände zwischen Aufnahmen, die zu anderen Szenen gehören, zu erhöhen versucht. Außerdem bezieht sich ein Triplettverlust auf bestimmte Proben.
-
In Operation 412 wendet das Programm zur Szenenaufteilung 122 einen Blockdiagonalverlust zurück durch das neuronale Netzwerk an. In verschiedenen Ausführungsformen ermittelt das Programm zur Szenenaufteilung 122, dass in einem Video einige Videosegmente einander sehr ähnlich sein können, ihr zeitlicher Abstand oder eine dazwischenliegende Szene jedoch auf Unterschiede hinweist. Die Kostenfunktion (z.B. Gleichung (6) akkumuliert die Werte weit außerhalb der Diagonale, die keinen Einfluss auf die Entscheidung haben, solange die Werte dazwischen hoch genug sind. In einigen Ausführungsformen soll eine leichte Variante des Blockdiagonalverlustes die Abstände zwischen den Szenen berücksichtigen, die nicht benachbart sind und die als blockbenachbart bezeichnet werden. Ein Blockdiagonalverlust zielt darauf ab, die Abstände zwischen Aufnahmen aus derselben Szene zu minimieren und die Abstände zwischen Aufnahmen, die zu anderen Szenen gehören, die einem Triplettverlust ähneln, zu vergrößern. Durch einen Blockdiagonalverlust wird die Blockdiagonalstruktur jedoch gestärkt, sodass sich die Leistung des Algorithmus zur optimalen Sequenzgruppierung verbessert.
-
In Operation 414 wendet das Programm zur optimalen Sequenzgruppierung 126 einen Aufteilungswahrscheinlichkeitsverlust zurück durch das neuronale Netzwerk an. In verschiedenen Ausführungsformen hebt der Aufteilungswahrscheinlichkeitsverlust den Wert der durchschnittlichen Wahrscheinlichkeit der Szenenaufteilung hervor. Außerdem ist der Aufteilungswahrscheinlichkeitsverlust so konfiguriert, dass er von der Aufteilungsstelle und nicht von der Blockdiagonale abhängt. In verschiedenen Ausführungsformen ermöglicht eine auf Aufteilungswahrscheinlichkeitsverlust gestützte Struktur, dass der Algorithmus zur optimalen Sequenzgruppierung in eine größere Lernpipeline integriert werden kann.
-
5A zeigt eine Blockdiagonalstruktur 500, die verschiedene Videosegmente oder Aufnahmen umfasst, die wie durch die verschiedenen dunkel gefärbten Quadrate gekennzeichnet gemäß einer Ausführungsform der vorliegenden Erfindung zu einem Cluster zusammengefasst sind. In dieser Ausführungsform werden Intensitätsstufen der Blöcke höhere Werte zugewiesen, und ein dunkler Block ist eine Abfolge von Videosegmenten mit geringen Abständen zueinander, was wahrscheinlich auf eine Szene hinweist.
-
5B zeigt eine ähnliche Blockdiagonalstruktur, die gemäß einer Ausführungsform der vorliegenden Erfindung blockbenachbarte Teile 502 der Abstandsmatrix umfasst. In dieser Ausführungsform stellt die Blockdiagonalstruktur den Verlust zwischen den Abständen zwischen Szenen dar, die nicht benachbart sind (z.B. blockbenachbarte Szenen). In verschiedenen Ausführungsformen stellen die dunkleren Quadrate die Abstände innerhalb der Videosegmente (z.B. Blockdiagonale) und die helleren Quadrate die Abstände zwischen den Szenen (z.B. blockbenachbart) dar.
-
Die vorliegende Offenbarung enthält zwar eine ausführliche Beschreibung von Cloud-Computing, es versteht sich jedoch, dass die Umsetzung der hier dargelegten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit beliebigen Arten von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud-Computing ist ein Modell zum Liefern eines Dienstes, der einen problemlosen, bedarfsorientierten Netzwerkzugriff auf einen gemeinsamen Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht, die schnell bereitgestellt werden können, wobei das Modell mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Einsatzmodelle umfassen kann.
-
Bei den Eigenschaften handelt es sich um die Folgenden:
- On-Demand Self-Service (bedarfsorientierte Selbstbedienung): Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher bereitstellen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
-
Broad Network Access (breiter Netzzugriff): Über ein Netzwerk sind Funktionen verfügbar, auf die durch Standardmechanismen zugegriffen wird, die die Verwendung durch heterogene schlanke oder leistungsintensive Client-Plattformen unterstützen (z.B. Mobiltelefone, Laptops und PDAs).
-
Ressource Pooling (Ressourcen-Bündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehreren Nutzern unter Verwendung eines Mehrmietermodells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über die genauen Standorte der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
-
Rapid Elasticity (schnelle Anpassungsfähigkeit): Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Qualität gekauft werden.
-
Measured Service (messbarer Dienst): Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Inanspruchnahme von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz bereitgestellt wird.
-
Es gibt folgende Dienstmodelle:
- Software as a Service (Saas) (Software als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine schlanke Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten aus zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Einstellungen der Anwendungskonfiguration.
-
Platform as a Service (Paas) (Plattform als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Werkzeugen erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendung.
-
Infrastructure as a Service (laas) (Infrastruktur als Dienst): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Es gibt folgende Einsatzmodelle:
- Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
-
Community Cloud (Benutzergemeinschafts-Cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Anliegen hat (z.B. Aufgabe, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder fremden Räumen befinden.
-
Public Cloud (öffentliche Cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid Cloud (hybride Cloud): Die Cloud-Infrastruktur besteht aus zwei oder mehr Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Entitäten bleiben, aber durch eine standardisierte oder herstellereigene Technologie miteinander verbunden sind, die eine Übertragbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert und schwerpunktmäßig auf Statusunabhängigkeit, geringe Kopplung, Modularität und semantische Interoperabilität ausgerichtet. Der Kern der Cloud-Computing ist eine Infrastruktur, die ein Netzwerk aus miteinander verbundenen Knoten enthält.
-
Mit Bezug nunmehr auf 6 ist eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der persönliche digitale Assistent (PDA) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Kraftfahrzeug-Computersystem 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie private, benutzergemeinschaftliche, öffentliche oder hybride Clouds wie oben beschrieben oder in einer Kombination davon in Gruppen angeordnet sein (nicht dargestellt). Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 6 gezeigten Arten von Datenverarbeitungseinheiten 54A bis N nur veranschaulichend sein sollen und die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 mit jeder Art von computergestützter Einheit über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung Daten austauschen kann (z.B. über einen Web-Browser).
-
Mit Bezug nunmehr auf 7 wird ein Satz funktionaler Abstraktionsschichten gezeigt, die von der Datenverarbeitungsumgebung 50 (6) bereitgestellt werden. Es versteht sich im Voraus, dass die in 7 dargestellten Komponenten, Schichten und Funktionen nur veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Die Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: die Großrechner 61; die Server 62 auf Grundlage der RISC-Architektur (RISC = Reduced Instruction Set Computer, Computer mit reduziertem Befehlssatz), die Server 63; die Blade-Server 64; die Speichereinheiten 65; sowie die Netzwerke und Netzwerkkomponenten 66. In einigen Ausführungsformen enthalten die Software-Komponenten die Netzwerkanwendungs-Serversoftware 67 und die Datenbank-Software 68.
-
Die Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server 71; virtuelle Speicher 72; virtuelle Netzwerke 73; darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
In einem Beispiel kann die Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung 81 ermöglicht eine dynamische Bereitstellung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Aufgaben in der Cloud-Computing-Umgebung durchzuführen. Messen und Preisfindung 82 stellen Kostenverfolgung beim Verwenden von Ressourcen in der Cloud-Computing-Umgebung sowie Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware umfassen. Die Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zur Cloud-Computing-Umgebung bereit. Die Verwaltung der Dienstgüte 84 stellt Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die erforderliche Dienstgüte erreicht wird. Die Planung und Erfüllung der Dienstgütevereinbarung (Service Level Agreement, SLA) 85 stellt eine Vorabeinteilung und eine Beschaffung von Cloud-Computing-Ressourcen bereit, deren künftiger Bedarf auf der Grundlage einer Dienstgütevereinbarung vorausgesehen wird.
-
Die Arbeitslastschicht 90 stellt Beispiele für Funktionalitäten bereit, für die die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und Bereitstellen einer wahrheitsgetreuen Ausgabe 96.
-
8 zeigt ein Blockschaubild 800 von Komponenten des Computersystems 120 und des Speichernetzwerks 130 gemäß einer veranschaulichenden Ausführungsform der vorliegenden Erfindung. Es sei darauf hingewiesen, dass 8 nur eine beispielhafte Implementierung bereitstellt und keine Beschränkungen in Bezug auf die Umgebungen impliziert, in denen verschiedene Ausführungsformen implementiert werden können. An der dargestellten Umgebung können zahlreiche Änderungen vorgenommen werden.
-
Das Computersystem 120 und das Speichernetzwerk 130 umfassen die Datenübertragungsstruktur 802, die Datenübertragungen zwischen einem oder mehreren Computerprozessoren 804, dem Speicher 806, dem permanenten Speicher 808, der Datenübertragungseinheit 810 und einer oder mehreren Eingabe-/Ausgabeschnittstellen (E/A-Schnittstellen) 812 bereitstellt. Die Datenübertragungsstruktur 802 kann mit einer beliebigen Architektur umgesetzt werden, die zum Übertragen von Daten und/oder Steuern von Informationen zwischen Prozessoren (wie beispielsweise Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.), dem Systemspeicher, Peripherieeinheiten und einer beliebigen anderen Hardware-Komponente in einem System entworfen wurde. Die Datenübertragungsstruktur 802 kann zum Beispiel mit einem oder mehreren Bussen umgesetzt werden.
-
Bei dem Speicher 806 und dem permanenten Speicher 808 handelt es sich um durch einen Computer lesbare Speichermedien. In dieser Ausführungsform enthält der Speicher 806 den Direktzugriffsspeicher (RAM) 814 und den Cache 816. Im Allgemeinen kann der Speicher 806 jedes geeignete flüchtige oder nichtflüchtige durch einen Computer lesbare Speichermedium enthalten.
-
Das Programm zur Szenenaufteilung 122, das Modell für maschinelles Lernen 124, das Programm zur optimalen Sequenzgruppierung 126, die Computerschnittstelle 128, die Serveranwendung 132 und die Datenbank 134 werden im permanenten Speicher 808 zum Ausführen und/oder zum Zugriff durch einen oder mehrere der jeweiligen Computerprozessoren 804 über einen oder mehrere Speicher des Speichers 806 gespeichert. In dieser Ausführungsform enthält der permanente Speicher 808 ein magnetisches Festplattenlaufwerk. Alternativ oder zusätzlich zu einem magnetischen Festplattenlaufwerk kann der permanente Speicher 808 einen Halbleiterdatenträger, eine Halbleiterspeichereinheit, einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM), einen Flash-Speicher und beliebige andere durch einen Computer lesbare Speichermedien enthalten, die Programmanweisungen oder digitale Informationen speichern können.
-
Die vom permanenten Speicher 808 verwendeten Medien können auch wechselbar sein. Für den permanenten Speicher 808 kann beispielsweise eine wechselbare Festplatte verwendet werden. Zu anderen Beispielen gehören optische und magnetische Platten, USB-Speichersticks und Chipkarten, die für die Übertragung auf ein anderes, durch einen Computer lesbares Speichermedium, das ebenfalls Teil des permanenten Speichers 808 ist, in ein Laufwerk eingesteckt werden.
-
Die Datenübertragungseinheit 810 stellt in diesen Beispielen Datenübertragungen mit anderen Datenverarbeitungssystemen oder-einheiten bereit, einschließlich der Ressourcen des Netzwerks 110. In diesen Beispielen enthält die Datenübertragungseinheit 810 eine oder mehrere Netzwerkschnittstellenkarten. Die Datenübertragungseinheit 810 kann Datenübertragungen über physische und drahtlose Datenübertragungsverbindungen bereitstellen und zwar entweder über eine von beiden oder beide. Das Programm zur Szenenaufteilung 122, das Modell für maschinelles Lernen 124, das Programm zur optimalen Sequenzgruppierung 126, die Computerschnittstelle 128, die Serveranwendung 132 und die Datenbank 134 können über die Datenübertragungseinheit 810 in den permanenten Speicher 808 heruntergeladen werden.
-
Die E/A-Schnittstelle(n) 812 ermöglicht/ermöglichen die Ein- und Ausgabe von Daten in Verbindung mit anderen Einheiten, die mit dem Computersystem 120 und dem Speichernetzwerk 130 verbunden sein können. So kann beispielsweise die E/A-Schnittstelle 812 eine Verbindung zu den externen Einheiten 818 wie beispielsweise einer Tastatur, einem Tastenfeld, einem Touchscreen und/oder einer anderen geeigneten Eingabeeinheit bereitstellen. Die externen Einheiten 818 können auch tragbare, durch einen Computer lesbare Speichermedien wie z.B. USB-Speichersticks, tragbare optische oder magnetische Platten und Speicherkarten umfassen. Software und Daten wie beispielsweise das Programm zur Szenenaufteilung 122, das Modell für maschinelles Lernen 124, das Programm zur optimalen Sequenzgruppierung 126, die Computerschnittstelle 128, die Serveranwendung 132 und die Datenbank 134, die zum Ausführen von Ausführungsformen der vorliegenden Erfindung verwendet werden, können auf solchen tragbaren, durch einen Computer lesbaren Speichermedien gespeichert und über die E/A-Schnittstelle(n) 812 in den permanenten Speicher 808 geladen werden. Die E/A-Schnittstelle(n) 812 ist/sind auch mit einer Anzeige 820 verbunden.
-
Die Anzeige 820 stellt einen Mechanismus bereit, um einem Benutzer Daten anzuzeigen, wobei es sich bei dem Mechanismus z.B. um einen Computermonitor oder einen Fernsehbildschirm handeln kann.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hier nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hier beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hier unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder bzw. Schaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder bzw. Schaltbilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern bzw. Schaltbildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder bzw. Schaltbilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaubilder bzw. Schaltbilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern bzw. Schaltbildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Implementierungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder bzw. Schaltbilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern bzw. Schaltbildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Die hier beschriebenen Programme werden auf Grundlage der Anmeldung identifiziert, für die sie in einer bestimmten Ausführungsform der Erfindung umgesetzt werden. Es ist jedoch zu beachten, dass eine bestimmte Programmnomenklatur hier nur aus Gründen der Zweckmäßigkeit verwendet wird, daher sollte die Erfindung nicht darauf beschränkt sein, nur in einer bestimmten Anwendung verwendet zu werden, die durch diese Nomenklatur bezeichnet und/oder impliziert wird.
-
Es sei darauf hingewiesen, dass Begriffe wie z.B. „Smalltalk“ u.ä. in verschiedenen Rechtsordnungen auf der ganzen Welt markenrechtlich geschützt sein können und hier nur in Bezug auf die durch die Marken ordnungsgemäß bezeichneten Produkte oder Dienstleistungen verwendet werden, soweit solche Markenrechte bestehen.