-
HINTERGRUND
-
Die beschriebenen Ausführungsformen betreffen allgemein eine Videoverarbeitung und insbesondere eine entitätsbasierte temporale Segmentierung von Videostreams.
-
Das gemeinsame Nutzen bzw. Teilen von Videos mit einer Vielfalt von unterschiedlichem Inhalt und codiert in unterschiedlichen Formaten durch Hostingdienste, wie beispielsweise YOUTUBE, bedeutet eine anwachsende Notwendigkeit für eine effektive Organisation, eine Indexierung und ein Management. Die meisten der existierenden Lösung für ein Browsen und Wiederauffinden von Videos basieren auf Einzelaufnahmen, wobei ein Videostream temporal in Einzelaufnahmen segmentiert wird. Eine Einzelaufnahme eines Videostreams ist eine ununterbrochene Sequenz von Videoframes des Videostreams, aufgenommen von einer Kamera; zwei temporal bzw. zeitlich benachbarte Segmente, die eine aufnahmebasierte temporale Segmentierung verwenden, sind visuell unterschiedlich.
-
Es existieren viele Multimediaanwendungen, die eher auf die Semantiken von Videoszenen gerichtet sind als auf temporale visuelle Unterschiede zwischen benachbarten Aufnahmen. Eine Herausforderung bei einer aufnahmebasierten temporalen Segmentierung besteht in einer Verbindung der unverarbeiteten Videodaten niedriger Ebene mit Semantikfeldern hoher Ebene eines Videostreams, z.B. einem Finden geeigneter Darstellungen für den visuellen Inhalt, der die Semantiken des Videos reflektiert. Nimmt man die zusammenhängende Aufnahme eines Flugzeugs, das in Richtung zu einer Landebahn fliegt und landet, als ein Beispiel enthält die zusammenhängende Aufnahme auf der Semantikebene zwei Szenen: eine, die das Flugzeug beschreibt, das fliegt, und die andere über das Landen des Flugzeugs. Eine aufnahmebasierte Segmentierung kann nicht zwischen den zwei Szenen unterscheiden, wenn der Übergang zwischen den zwei Szenen glatt ist.
-
ZUSAMMENFASSUNG
-
Beschriebene Verfahren, Systeme und Computerprogrammprodukte stellen Lösungen zum temporalen Segmentieren eines Videos basierend auf einer Analyse von Entitäten bereit, die in den Videoframes des Videos identifiziert sind.
-
Eine Ausführungsform enthält ein computerimplementiertes Verfahren zum temporalen Segmentieren eines Videos. Das Verfahren umfasst die Schritte eines Decodierens des Videos in mehrere Videoframes. Mehrere Videoframes werden für eine Kommentierung ausgewählt. Der Kommentierungsprozess identifiziert Entitäten, die in einem gesampelten bzw. abgetasteten Videoframe vorhanden sind, und jede identifizierte Entität hat einen Zeitstempel und einen Vertrauenswert, der die Wahrscheinlichkeit anzeigt, dass die Entität genau identifiziert wird. Für jede identifizierte Entität wird eine zeitliche Serie mit Zeitstempeln und entsprechenden Vertrauenswerten erzeugt und geglättet, um ein Kommentierungsrauschen zu reduzieren. Ein oder mehrere Segmente, die eine Entität über die Länge des Videos enthalten, werden durch Erfassen von Grenzen der Segmente in der zeitlichen Serie der Entität erhalten. Aus der individuellen temporalen Segmentierung für jede identifizierte Entität im Video wird eine gesamte temporale Segmentierung für das Video erzeugt, wobei die gesamte temporale Segmentierung die Semantiken des Videos reflektiert.
-
Die in der Beschreibung beschriebenen Merkmale und Vorteile sind nicht alle inbegriffen und, insbesondere, werden viele zusätzliche Merkmale und Vorteile einem Fachmann auf dem Gebiet angesichts der Zeichnungen, der Beschreibung und der Ansprüche offensichtlich werden. Darüber hinaus sollte es beachtet werden, dass die in der Beschreibung verwendete Sprache hauptsächlich zur Lesbarkeit und zu Anweisungszwecken ausgewählt worden ist und nicht ausgewählt worden sein kann, um den offenbarten Gegenstand zu skizzieren oder zu umschreiben.
-
KURZE BESCHREIBUNG DER FIGUREN
-
1 ist ein Blockdiagramm, das eine Systemansicht eines Video-Hostingdienstes darstellt, der ein entitätsbasiertes temporales Segmentierungsmodul gemäß einer Ausführungsform hat.
-
2 ist ein Beispiel eines Videoframes mit einem Hund, der einen Hut trägt, und einer entsprechenden Kommentierung für den Hund und den Hut.
-
3 ist ein Blockdiagramm, das ein Segmentierungsmodul gemäß einer Ausführungsform darstellt.
-
4 stellt ein Beispiel einer zeitlichen Serie einer identifizierten Entität in einem Video und entsprechende Vertrauenswerte der Entität zu verschiedenen zeitlichen Beispielen im Video dar.
-
5 ist ein Beispiel eines Anwendens einer Glättungsfunktion auf eine zeitliche Serie einer identifizierten Entität in einem Video.
-
6 ist ein Beispiel eines Erfassens von Segmentgrenzen für eine identifizierte Entität in einem Video.
-
7A ist ein Beispiel zum Erzeugen einer gesamten Segmentierung eines Videos, das auf einer individuellen Segmentierung für identifizierte Entitäten in dem Video basiert, gemäß einer Ausführungsform.
-
7B ist ein Beispiel entsprechend einer gesamten Segmentierung einer Videoerzeugung, die in 7A gezeigt ist, nach einem Sortieren der individuellen Segmentierung für identifizierte Entitäten.
-
8 ist ein Ablaufdiagramm einer entitätsbasierten temporalen Segmentierung gemäß einer Ausführungsform.
-
Die Figuren zeigen verschiedene Ausführungsformen der Erfindung nur zu Darstellungszwecken, und die Erfindung ist nicht auf diese dargestellten Ausführungsformen beschränkt. Ein Fachmann auf dem Gebiet wird aus der folgenden Diskussion ohne weiteres erkennen, dass alternative Ausführungsformen der Strukturen und Verfahren, die hierin dargestellt sind, verwendet werden können, ohne von den Prinzipien der hierin beschriebenen Erfindung abzuweichen.
-
DETAILLIERTE BESCHREIBUNG
-
I. Systemübersicht
-
1 ist ein Blockdiagramm, das eine Systemansicht eines Video-Hostingdienstes 100 mit einem entitätsbasierten temporalen Segmentierungsmodul 102 gemäß einer Ausführungsform darstellt. Mehrere Anwender/Zuschauer verwenden einen Client 110A–N, um Dienste zu verwenden, die durch den Video-Hostingdienst 100 bereitgestellt sind, wie beispielsweise ein Hochladen und Wiederauffinden von Videos von einer Videohosting-Web-Seite und empfangen die angefragten Dienste vom Video-Hostingdienst 100. Der Video-Hostingdienst 100 kommuniziert mit einem oder mehreren Clients 110A–N über ein Netzwerk 130. Der Video-Hostingdienst 100 empfängt die Video-Hostingdienst-Anfragen für Videos von Clients 110A–N, segmentiert und indexiert die Videos durch das Modul 102 für eine entitätsbasierte temporale Segmentierung und bringt die angefragten Videos zurück zu den Clients 110A–N.
-
Bei einer Ausführungsform wird ein Client 110 durch einen Anwender verwendet, um Video-Hostingdienste anzufragen. Beispielsweise verwendet ein Anwender einen Client 110, um eine Anfrage zum Indexieren oder Speichern eines hochgeladenen Videos zu senden. Der Client 110 kann irgendein Typ von Computervorrichtung sein, wie beispielsweise ein Personalcomputer (z.B. Desktop-, Notebook-, Laptop-Computer), sowie Vorrichtungen, wie beispielsweise ein Mobiltelefon, ein persönlicher digitaler Assistent, ein IP-fähiges Videoabspielgerät. Der Client 110 enthält typischerweise einen Prozessor, eine Anzeigevorrichtung (oder eine Ausgabe zu einer Anzeigevorrichtung), einen lokalen Speicher, wie beispielsweise eine Festplatte oder eine Flash-Speichervorrichtung, zu welcher der Client 110 Daten speichert, die durch den Anwender beim Durchführen von Aufgaben verwendet werden, und eine Netzwerkschnittstelle zum Koppeln mit dem Video-Hostingdienst 100 über das Netzwerk 130. Ein Client 110 hat auch ein Videoabspielgerät zum Abspielen eines Videostreams.
-
Das Netzwerk 130 ermöglicht Kommunikationen zwischen den Clients 110 und dem Video-Hostingdienst 100. Bei einer Ausführungsform ist das Netzwerk 130 das Internet und verwendet standardisierte Vernetzungskommunikationstechnologien und Protokolle, die jetzt bekannt sind oder später entwickelt werden, welche ermöglichen, dass die Clients 110 mit dem Video-Hostingdienst 100 kommunizieren.
-
Der Video-Hostingdienst 100 umfasst ein Modul 102 für eine entitätsbasierte temporale Segmentierung, einen Videoserver 104 und eine Video-Datenbank 106. Der Videoserver 104 bietet die Videos aus der Video-Datenbank 106 in Antwort auf Video-Hostingdienst-Anfragen vom Anwender an. Die Video-Datenbank 106 speichert von Anwendern hochgeladene Videos, Videos, die aus dem Internet gesammelt sind, und Videos, die durch das Modul 102 für eine entitätsbasierte temporale Segmentierung segmentiert sind. Bei einer Ausführungsform speichert die Video-Datenbank 106 eine große Videosammlung für das Modul 102 für eine entitätsbasierte temporale Segmentierung, um ein Kommentierungsmodell zu trainieren.
-
Das Modul 102 für eine entitätsbasierte temporale Segmentierung segmentiert ein eingegebenes Video in mehrere temporale semantische Segmente basierend auf einer Analyse von einer oder mehreren Entitäten, die in den Videoframes des eingegebenen Videos vorhanden sind. Eine Entität in einem Videoframe stellt einen semantisch bedeutungsvollen räumlich-zeitlichen Bereich des Videoframes dar. Beispielsweise kann ein Frame eines Videos einer Katze, die mit einem Hund spielt, einen Hund enthalten, oder eine Katze oder sowohl einen Hund als auch eine Katze, wobei der Hund und/oder die Katze die Entitäten des Videoframes sind. Zwei temporal aneinandergrenzende semantische Segmente eines eingegebenen Videos enthalten unterschiedliche Szenen in Bezug auf Semantiken der Segmente, z.B. eine Hundeszene gegenüber einer Katzenszene.
-
Bei einer Ausführungsform hat die auf einer Entität basierte temporale Segmentierung 102 ein Decodiermodul 140, ein Kommentierungsmodul 150 und ein Segmentierungsmodul 300. Das Decodiermodul 140 decodiert ein eingegebenes Video und das decodierte Video hat mehrere Videoframes. Irgendwelche Decodierschemen, die Fachleuten auf dem Gebiet bekannt sind, können durch das Decodiermodul 140 nach dem Ermessen des Implementierers verwendet werden. Bei einer Ausführungsform decodiert das Decodiermodul 140 das eingegebene Video durch Durchführen einer Inversion von jeder Stufe des entsprechenden Codierprozesses, der das eingegebene Video gemäß einem Videokompressionsstandard codiert, einschließlich einer inversen Transformation (diskreten Cosinustransformation oder Wavelet-Transformation), einer inversen Quantisierung und einer inversen Entropiecodierung der Signale des eingegebenen Videos.
-
Das Kommentierungsmodul 150 wählt mehrere Videoframes aus dem decodierten Video aus und kommentiert jeden ausgewählten Videoframe. Bei einer Ausführungsform wählt das Kommentierungsmodul 150 die Videoframes basierend auf Zeitgabeinformation aus, wie z.B. ein Auswählen eines Videoframes alle 5 Sekunden des eingegebenen Videos, oder basierend auf einer Lokalisierung, wie z.B. ein Auswählen jedes zehnten Videoframes gemäß einer Anzeigereihenfolge der decodierten Videoframes. Um einen ausgewählten Videoframe zu kommentieren, identifiziert das Kommentierungsmodul 150 die Entitäten in dem ausgewählten Videoframe und ordnet einen Vertrauenswert für jede identifizierte Entität zu. Bei einer Ausführungsform wendet das Kommentierungsmodul 150 ein trainiertes Kommentierungsmodell auf jeden Videoframe des eingegebenen Videos an und erzeugt eine Gruppe von Kommentierungsparametern, die jede identifizierte Entität beschreiben, z.B. eine Klassenaufschrift, ein Begrenzungskasten, der die identifizierte Entität enthält, und einen Vertrauenswert. Die Klassenaufschrift einer identifizierten Entität beschreibt die Entität auf eine von Menschen lesbare Weise, z.B. mit beschreibendem Text der Entität. Der Begrenzungskasten, der die identifizierte Entität enthält, definiert einen Bereich in einem Videoframe, der die identifizierte Entität enthält. Der Begrenzungskasten ist durch seine Größe und Breite und Koordinaten von einem seiner Eckenpixel definiert. Der Vertrauenswert, der mit der Entität assoziiert ist, zeigt eine Wahrscheinlichkeit an, dass die Entität genau identifiziert wird, z.B. hat der identifizierte Hund in dem Videoframe eine Wahrscheinlichkeit von 90%, dass er ein Hund ist. Für eine Entität mit einem höheren Vertrauenswert in einem Videoframe ist es wahrscheinlicher, dass sie in dem Videoframe vorhanden ist, als in einem anderen Videoframe, in welchem dieselbe Entität einen niedrigeren Vertrauenswert hat.
-
Bei einer Ausführungsform trainiert das Kommentierungsmodul 150 ein Kommentierungsmodell unter Verwendung eines Frameworks zum Trainieren von Kommentierungen, wie beispielsweise das Dis Belief-Framework, das Modelle tiefer neuronaler Netze auf eine verteilte Weise mit schnellen Iterationen unter Verwendung von in der Video-Datenbank 106 gespeicherten Videos trainiert. Beispielsweise trainiert das Kommentierungsmodul 150 das Kommentierungsmodell unter Verwendung eines asynchronen stochastischen Gradientenabstiegsverfahrens und einer Vielfalt von Optimierungsverfahren für verteilte Stapel auf Computer-Clustern mit Tausenden von Maschinen an einer Datengruppe von 16 Millionen Bildern und 21 Tausend Kategorien. Das Kommentierungsmodul 150 extrahiert visuelle Merkmale aus den Trainingsbildern, lernt die invarianten Merkmale der extrahierten visuellen Merkmale und bildet das Trainingsmodell aus dem Lernen der visuellen Merkmale. Andere Ausführungsformen des Kommentierungsmoduls 150 können andere Maschinenlerntechniken verwenden, um das Kommentierungsmodell zu trainieren.
-
2 ist ein Beispiel eines Videoframes 810 mit einem Hund 220, der einen Hut 230 trägt, und einer entsprechenden Kommentierung für den Hund und den Hut. Das Kommentierungsmodul 150 wendet das trainierte Kommentierungsmodell auf den Videoframe 210 an. Basierend auf der Anwendung identifiziert das Kommentierungsmodul 150 zwei Entitäten im Videoframe 210: einen Hund 220 und einen Hut 230 mit einer breiten Krempe. Für jede identifizierte Entität identifiziert das Kommentierungsmodul 250 die Entität mit einer Klassenaufschrift, z.B. einem Hund, einem Hut, und einem Begrenzungskasten, der die identifizierte Entität enthält. Das Kommentierungsmodul 150 ordnet durch das trainierte Kommentierungsmodell auch einen Vertrauenswert (nicht gezeigt) für jede identifizierte Entität basierend auf der Analyse der mit der Entität assoziierten visuellen Merkmale zu.
-
Das Segmentierungsmodul 300 segmentiert das eingegeben Video in mehrere temporale semantische Segmente basierend auf einer Analyse von einer oder mehreren identifizierten Entitäten in den Videoframes des eingegebenen Videos. Bei einer Ausführungsform erzeugt das Segmentierungsmodul 300 eine gesamte temporale Segmentierung des eingegebenen Videos basierend auf der temporalen Segmentierung für jede identifizierte Entität des eingegebenen Videos und kombiniert die temporale Segmentierung von allen identifizierten Entitäten des eingegebenen Videos, um die gesamte temporale Segmentierung für das gesamte eingegebene Video zu erzeugen. Das Segmentierungsmodul 300 wird nachfolgend unter Bezugnahme auf die 3–8 weiter beschrieben.
-
II. Entitätsbasierte temporale semantische Segmentierung
-
3 ist ein Blockdiagramm, das ein Segmentierungsmodul 300 gemäß einer Ausführungsform darstellt. Die Ausführungsform des Segmentierungsmoduls 300 in 3 enthält ein Entitätsmodul 310, ein Glättungsmodul 320, ein Segmenterfassungsmodul 330 und ein Szenensegmentierungsmodul 340. Fachleute auf dem Gebiet werden erkennen, dass andere Ausführungsformen des Segmentierungsmoduls 300 unterschiedliche und/oder andere Module als diejenigen, die hier beschrieben sind, haben können, und dass die Funktionalitäten unter den Modulen auf eine unterschiedliche Weise aufgeteilt sein können.
-
Das Entitätsmodul
310 interagiert mit dem Kommentierungsmodul
150 des Segmentierungsmoduls
150, um identifizierte Entitäten und ihre entsprechenden Vertrauenswerte zu empfangen, und erzeugt eine zeitliche Serie für jede identifizierte Entität mit entsprechenden Vertrauenswerten über die gesamte Länge des eingegebenen Videos. Bei einer Ausführungsform bezeichnet das Entitätsmodul
310 die zeitliche Serie einer identifizierten Identität als Se wobei der Parameter e die identifizierte Entität in einem Videoframe darstellt. Die zeitliche Serie Se enthält eine Serie von Paaren
wobei sich der Parameter i auf die Framenummer bezieht, der Parameter
der Zeitstempel des i-ten Frames ist und
sich auf den Vertrauenswert der Entität beim Zeitstempel
bezieht.
-
Nimmt man nun Bezug auf 4, stellt 4 ein Beispiel einer zeitlichen Serie einer identifizierten Entität in einem eingegebenen Video und entsprechende Vertrauenswerte der Entität zu verschiedenen Zeitpunkten des eingegebenen Videos dar. 4 zeigt eine zeitliche Serie 430 von einer identifizierten Entität, z.B. einen Hund in einem Video von einer Katze, die mit dem Hund spielt, über die gesamte Länge des eingegebenen Videos. Die horizontale Achse 410 stellt die Zeitgabeinformation der zeitlichen Serie 430 dar, z.B. die Länge des Videos und die Zeitstempel der Videoframes des Videos, und die vertikale Achse 420 stellt die Vertrauenswerte (z.B. 430a–420h) dar, die mit der Entität zu einem jeweiligen Zeitpunkt assoziiert sind. Beispielsweise hat der Frame zu einem Zeitpunkt t1 einen Vertrauenswert 430a, der die Wahrscheinlichkeit des Frames zu dem Zeitpunkt t1 mit der identifizierten Entität in dem Videoframe darstellt.
-
Das Glättungsmodul 320 entfernt potentiell störende bzw. falsche bzw. nachgemachte bzw. unechte Segmente durch Anwenden einer Glättungsfunktion auf die zeitliche Serie für jede identifizierte Entität des eingegebenen Videos. Eine Entität in einem Videoframe eines Videos kann basierend auf unbearbeiteten visuellen Merkmalen des Videos aufgrund von Rauschen, wie z.B. eine Bewegungsunschärfe, die durch einen Kameraschwenk verursacht ist, wenn das eingegebene Video erfasst wird, falsch identifiziert werden. Somit können die Vertrauenswerte für eine identifizierte Entität über die gesamte Länge des eingegebenen Videos aufgrund geringfügiger Änderungen bezüglich temporaler Untersequenzframes stark schwanken, was zu falschen Segmenten des eingegebenen Videos führen kann.
-
Bei einer Ausführungsform verwendet das Glättungsmodul 320 ein Bewegungsfenster, um die zeitliche Serie für jede identifizierte Entität zu glätten, um eine geglättete zeitliche Serie für jede identifizierte Entität zu erzeugen. Das Bewegungsfenster ist durch eine Größe und einen Schritt definiert. Das Bewegungsfenster über einer zeitlichen Serie einer Entität wählt die Vertrauenswerte der zu glättenden Entität aus. Das Glättungsmodul 320 bildet einen Durchschnitt der Vertrauenswerte innerhalb des Bewegungsfensters, um einen durchschnittlichen Vertrauenswert zu erzeugen, der den geglätteten Vertrauenswert der Entität innerhalb des Bewegungsfensters darstellt. Das Glättungsmodul 320 bewegt das Fenster zu einem nächsten Teilbereich der zeitlichen Serie der Entität zum Glätten der Vertrauenswerte innerhalb des nächsten Teilbereichs der zeitlichen Serie.
-
5 ist ein Beispiel zum Anwenden einer Glättungsfunktion auf eine zeitliche Serie einer identifizierten Entität in einem Video. Die unbearbeitete zeitliche Serie für die identifizierte Entität ist durch die glatte und kontinuierliche Kurve 530 dargestellt. Die Glättungsfunktion ist eine Durchschnittsbildungsfunktion, die einen Durchschnitt der Vertrauenswerte innerhalb des Bewegungsfensters 540 bildet, das durch seine Größe und seinen Schritt definiert ist. Die geglättete zeitliche Serie für die Entität ist durch die Kurve 550 dargestellt, die das Kommentierungsrauschen in den Videoframes des eingegebenen Videos entfernt.
-
Das Segmenterfassungsmodul 330 erfasst Segmente für jede identifizierte Entität in dem eingegebenen Video. Bei einer Ausführungsform erfasst das Segmenterfassungsmodul 330 Kanten bzw. Ränder in einem Videoframe durch Erfassen von Grenzen für Segmente, die eine identifizierte Entität in der zeitlichen Serie der identifizierten Entität erhalten. Das Segmenterfassungsmodul 330 sortiert die Vertrauenswerte, die mit der geglätteten zeitlichen Serie einer identifizierten Entität assoziiert sind, in einer ansteigenden Reihenfolge der Zeitstempel der zeitlichen Serie, beginnend von dem ersten Zeitstempel, der durch das Segmenterfassungsmodul 330 ausgewählt ist. Das Segmenterfassungsmodul 330 erfasst ein Paar von Grenzen für ein Segment in der zeitlichen Serie basierend auf vordefinierten Schwellenwerten für einen Beginn und einen Versatz. Ein Schwellenwert für einen Beginn einer Grenze eines Segments zeigt den Start des Segments an, das die identifizierte Entität enthält; ein Versatz-Schwellenwert für die identifizierte Entität zeigt das Ende des Segments an, das die identifizierte Entität enthält. Die Videoframes zwischen den Zeitpunkten, die mit dem Start und dem Ende des Segments assoziiert sind, bilden ein Segment, das die identifizierte Entität enthält. Die identifizierte Entität in den Videoframes, die zwischen den entsprechenden Zeitpunkten erfasst sind, hat einen geglätteten Vertrauenswert, der gleich dem Schwellenwert für den Beginn oder größer als dieser ist.
-
Um die Länge eines Segments für eine identifizierte Entität zu bestimmen, bestimmt das Segmenterfassungsmodul
330, ob ein neues Segment zu starten oder ein aktuelles Segment zu beenden ist, und zwar zu einem Zeitpunkt basierend auf den Ableitungen der Vertrauenswerte, die mit zwei aufeinanderfolgenden Zeitstempeln assoziiert sind. Bei einer Ausführungsform berechnet das Segmenterfassungsmodul
330 die Ableitung als die Differenz zwischen den Vertrauenswerten bei zwei aufeinanderfolgenden Zeitstempeln wie es in Gleichung (1) folgt:
wobei
den Vertrauenswert beim Zeitstempel
darstellt und
den Vertrauenswert beim nächsten Zeitstempel
darstellt und angenommen ist, dass die zwei Zeitstempel bezüglich der Zeit um Δt einheitlich beabstandet sind. Das Segmenterfassungsmodul
330 vergleicht die berechnete Ableitung mit einem ersten Ableitungs-Schwellenwert (der auch "Beginn-Ableitungs-Schwellenwert" genannt wird). In Reaktion darauf, dass die berechnete Ableitung den Beginn-Ableitungs-Schwellenwert übersteigt, beginnt das Segmenterfassungsmodul
330 ein neues Segment für die identifizierte Entität.
-
Gleichermaßen kann das Segmenterfassungsmodul 330 die berechnete Ableitung mit einem zweiten Ableitungs-Schwellenwert (der auch "Versatz-Ableitungs-Schwellenwert" genannt wird) vergleichen. In Reaktion darauf, dass die berechnete Ableitung kleiner als der Versatz-Ableitungs-Schwellenwert wird, beendet das Segmenterfassungsmodul 330 ein aktuelles Segment für die Entität.
-
6 zeigt ein Beispiel zum Erfassen von Segmentgrenzen für eine identifizierte Entität, z.B. den Hund, in einem Video basierend auf einem konfigurierbaren Beginn-Ableitungs-Schwellenwert und dem Versatz-Ableitungs-Schwellenwert. Die zeitliche Serie für die Hund-Entität ist durch die Kurve 660 dargestellt. Die Entität zu einem Zeitpunkt t1+Δt hat einen entsprechenden Vertrauenswert b, der als der Beginn-Schwellenwert ausgewählt ist, der den Start 630 eines Segments für die Hund-Entität anzeigt. Die Entität zu einem Zeitpunkt tj hat einen entsprechenden Vertrauenswert c, der als der Versatz-Schwellenwert ausgewählt ist, der das Ende 650 des Segments für die Hund-Entität anzeigt. Die Videoframes zwischen den Zeitpunkten t1+Δt und tj bilden ein Segment, das die Hund-Entität enthält. Jede Hund-Entität in den Videoframes, die zwischen den Zeitpunkten t1+Δt und tj erfasst sind, hat einen Vertrauenswert gleich dem Beginn-Schwellenwert oder größer als dieser, d.h. den Vertrauenswert b.
-
Unter der Annahme, dass die Zeitpunkte bei t1 und t1+Δt aufeinanderfolgend sind, berechnet das Segmenterfassungsmodul 330 die Ableitung der Vertrauenswerte zwischen t1 und t1+Δt gemäß der obigen Gleichung (1). Das Segmenterfassungsmodul 330 vergleicht die berechnete Ableitung mit einem vorbestimmten Beginn-Ableitungs-Schwellenwert. Bei dem Beispiel in 6 übersteigt die Ableitung der Vertrauenswerte zwischen t1 und t1+Δt den vorbestimmten Beginn Ableitungs-Schwellenwert. Das Segmenterfassungsmodul 330 bestimmt, dass ein neues Segment für die Hund-Entität zu dem Zeitpunkt t1+Δt startet.
-
Gleichermaßen berechnet das Segmenterfassungsmodul 330 die Ableitung der Vertrauenswerte zwischen tj und tj+Δt gemäß der obigen Gleichung (1) und vergleicht die berechnete Ableitung mit einem vorbestimmten Versatz-Ableitungs-Schwellenwert. Bei dem Beispiel in 6 ist die Ableitung der Vertrauenswerte zwischen tj und tj+Δt unter dem vorbestimmten Versatz-Ableitungs-Schwellenwert. Das Segmenterfassungsmodul 330 bestimmt, dass das Segment für die Hund-Entität zu dem Zeitpunkt tj endet.
-
Es wird angemerkt, dass der Beginn-Ableitungs-Schwellenwert und der Versatz-Ableitungs-Schwellenwert konfigurierbar sind. Bei einer Ausführungsform wählt das Segmenterfassungsmodul 330 den Beginn-Ableitungs-Schwellenwert und den Versatz-Ableitungs-Schwellenwert basierend auf Videosegmentierungsexperimenten mit ausgewählten Videos aus, die in der Video-Datenbank 106 gespeichert sind, wobei die ausgewählten Videos bekannte Segmentierungsinformation haben und Bodendaten darstellen, um Beginn- und Versatz-Ableitungs-Schwellenwerte abzuleiten. Bei einer anderen Ausführungsform wählt das Entitäts-Segmenterfassungsmodul 330 den Beginn-Ableitungs-Schwellenwert basierend auf einem ausgewählten Perzentil von ansteigend angeordneten positiven Ableitungen von Vertrauenswerten aus; das Segmenterfassungsmodul 330 wählt den Versatz-Ableitungs-Schwellenwert basierend auf einem ausgewählten Perzentil von absteigend angeordneten negativen Ableitungen von Vertrauenswerten aus.
-
Um die Auswahl einer Beginn/Versatz-Ableitungs-Schwelle basierend auf einem Perzentil weiter darzustellen, wird angenommen, dass die angeordneten Ableitungen einer zeitlichen Serie für eine Entität die folgende ist: {–0.9, –0.6, –0.5, –0.3, –0.1, 0, 0, 0, 0, 0.1, 0.2, 0.3, 0.3, 0.5}, wobei die ansteigend angeordneten positiven Ableitungen {0, 0, 0, 0, 0.1, 0.2, 0.3, 0.3, 0.5} sind und die absteigend angeordneten negativen Ableitungen {–0.1, –0.3, –0.5, –0.6, –09} sind, das Segmenterfassungsmodul 330 ein Perzentil von 0.3 der ansteigend angeordneten positiven Ableitungen als den Beginn-Schwellenwert auswählt und ein Perzentil von 0.3 der absteigend angeordneten negativen Ableitungen als den Versatz-Schwellenwert auswählt. Das Perzentil von 0.3 der ansteigend angeordneten positiven Ableitungen stellt den Beginn-Ableitungs-Schwellenwert auf 0.2 ein, während das Perzentil von 0.3 der absteigend angeordneten negativen Ableitungen den Versatz-Ableitungs-Schwellenwert auf –0.3 einstellt. Der Beginn-Ableitungs-Schwellenwert zeigt den Start eines Segments für die Entität an und der Versatz-Ableitungs-Schwellenwert zeigt das Ende des Segments für die Entität an.
-
Bei noch einer anderen Ausführungsform berechnet das Segmenterfassungsmodul
330 eine Prozentsatzreduzierung bezüglich der Vertrauenswerte zwischen zwei aufeinanderfolgenden Zeitstempeln wie es in Gleichung (2) folgt:
-
Das Segmenterfassungsmodul
230 wählt einen Schwellenwert für die Prozentsatzreduzierung aus und vergleicht die berechnete Prozentsatz_Reduzierung mit dem ausgewählten Schwellenwert. In Reaktion darauf, dass die berechnete Prozentsatz_Reduzierung kleiner als der ausgewählte Schwellenwert wird, beendet das Segmenterfassungsmodul
230 das Segment bei dem Zeitstempel
.
-
Um eine unnötige Segmentierung aufgrund von einigen fehlenden Videoframes in dem Segmentierungsprozess für eine Entität zu verhindern, verknüpft das Segmenterfassungsmodul 330 Segmente, die während einer Abkühlperiode temporär geschlossen sind. Die Abkühlperiode kann eine Zeitperiode, z.B. fünf Sekunden, dauern, und zwar in Abhängigkeit von einer Vielfalt von Faktoren, wie beispielsweise den Charakteristiken des Inhalts des eingegebenen Videos, verfügbaren Computerressourcen (z.B. Anzahl von Computerprozessoren). Während der Abkühlperiode wird zugelassen, dass ein Segment für eine Entität fortfährt, selbst wenn die Bedingung, die das Ende des Segments anzeigt, wie es oben beschrieben ist, erfüllt ist.
-
Ein eingegebenes Video hat oft viele Videoframes und dauert einige Zeit. Jeder der Videoframes kann mehr als eine Entität in dem Videoframe enthalten. Die Ausführungsformen, die oben beschrieben sind, offenbaren ein Erzeugen der individuellen Segmentierung für jede identifizierte Entität. Das Szenensegmentierungsmodul 340 erzeugt eine gesamte Segmentierung des gesamten eingegebenen Videos basierend auf den individuellen bzw. einzelnen Segmentierungen für jede identifizierte Entität. Die gesamte Segmentierung des eingegebenen Videos enthält eines oder mehrere temporale semantische Segmente, von welchen jedes eine Gruppe von Entitäten hat; irgendwelche zwei benachbarten Segmente haben Gruppen von unterschiedlichen Entitäten.
-
Bei einer Ausführungsform hat das Segmentierungsmodul 300 ein Szenensegmentierungsmodul 340 zum Erzeugen der gesamten Segmentierung des eingegebenen Videos. Das Szenensegmentierungsmodul 340 erhält die individuelle Segmentierung für jede identifizierte Entität des eingegebenen Videos von dem Segmenterfassungsmodul 330 und sortiert die individuelle Segmentierung der identifizierten Entitäten gemäß den Zeitstempeln, die mit der individuellen Segmentierung assoziiert sind. Aus der sortierten individuellen Segmentierung zeichnet das Szenensegmentierungsmodul 340 den Start und das Ende, die mit der individuellen Segmentierung assoziiert sind, auf und erzeugt Segmente, die unterschiedliche Entitäten enthalten.
-
Nimmt man nun Bezug auf 7, ist 7 ein Beispiel zum Erzeugen einer gesamten Segmentierung eines eingegebenen Videos basierend auf individueller Segmentierung für identifizierte Entitäten in dem eingegebenen Video gemäß einer Ausführungsform. Das Beispiel in 7 hat vier einzelne Segmente, die durch das Segmentierungserfassungsmodul 230 erzeugt sind; ein Segment zwischen dem Zeitpunkt t1 und dem Zeitpunkt t3 für die Hund-Entität; ein Segment zwischen dem Zeitpunkt t5 und dem Zeitpunkt t7 für eine andere Hund-Entität; ein Segment zwischen dem Zeitpunkt t2 und dem Zeitpunkt t4 für die Katzen-Entität; ein Segment zwischen dem Zeitpunkt t6 und dem Zeitpunkt t8 für eine weitere Katzen-Entität.
-
Das Szenensegmentierungsmodul 340 ordnet die einzelnen bzw. individuellen Segmente der Hund-Entität und der Katzen-Entität gemäß den Start- und End-Zeitstempeln an, die mit den individuellen Segmenten assoziiert sind, wie es in 7 gezeigt ist. Das Szenensegmentierungsmodul 340 zeichnet die 4 Start-Zeitstempel, d.h. Zeitstempel zu den Zeitpunkten t1, t2, t5 und t6, und die 4 End-Zeitstempel, d.h. Zeitstempel zu Zeitpunkten t3, t4, t7 und t8, auf. Das Szenen-Segmentierungsmodul 340 kombiniert die individuellen Segmente für die Hund-Entität und die Katzen-Entität gemäß den angeordneten Start- und End-Zeitstempeln, um neue Segmente für das eingegebene Video zu erzeugen. Beispielsweise zeigen angeordnete Zeitstempel der individuellen Segmente die folgenden sechs neuen Segmente an:
- • Segment zwischen Zeitstempeln t1 und t2, das ein Nur-Hund-Segment ist;
- • Segment zwischen Zeitstempeln t2 und t3, das ein Katze-und-Hund-Segment ist;
- • Segment zwischen Zeitstempeln t3 und t4, das ein Nur-Katze-Segment ist;
- • Segment zwischen Zeitstempeln t5 und t6, das ein Nur-Hund-Segment ist;
- • Segment zwischen Zeitstempeln t6 und t7, das ein Katze-und-Hund-Segment ist;
- • Segment zwischen Zeitstempeln t7 und t8, das ein Nur-Katze-Segment ist.
-
Das Szenensegmentierungsmodul 340 kann weiterhin die neuen Segmente sortieren und ein Segment löschen, das eine selbe Gruppe von Entitäten wie eine andere enthält. Beispielsweise sind das Segment zwischen den Zeitstempeln t1 und t2 und das Segment zwischen den Zeitstempeln t5 und t6 beide Nur-Hund-Segmente. Das Szenensegmentierungsmodul 340 kann eines dieser zwei Segmente auswählen, z.B. das Segment zwischen den Zeitstempeln t5 und t6, um ein Nur-Hund-Segment des eingegebenen Videos darzustellen. Gleichermaßen kann das Szenensegmentierungsmodul 340 die Segment-Zeitstempel t7 und t8 auswählen, um ein Nur-Katze-Segment darzustellen. Nach dem weiteren Sortieren erzeugt das Szenensegmentierungsmodul 340 die gesamte Segmentierung des eingegebenen Videos, die drei Segmente enthält. Nur-Hund-Segment, Nur-Katze-Segment und Katze-und-Hund-Segment. 7B zeigt ein Beispiel der gesamten Segmentierung des eingegebenen Videos nach einem Sortieren.
-
Bei einer weiteren Ausführungsform kann das Szenensegmentierungsmodul 340 weiterhin die neuen Segmente gemäß dem mit einer Entität assoziierten Vertrauenswert sortieren. Beispielsweise bringt das Szenensegmentierungsmodul 340 die Segmente einer identifizierten Entität in eine Rangordnung, z.B. einen Hund, basierend auf dem entsprechenden Vertrauenswert der Segmente. In Reaktion auf eine Suchanfrage an der Entität, kann das Szenensegmentierungsmodul 340 eine Untergruppe von allen Segmenten der angefragten Entität zurückbringen, von welchen jedes einen Vertrauenswert hat, der eine Schwelle übersteigt, oder alle Segmente der angefragten Entität zurückbringen.
-
III. Beispielhafte Operation einer entitätsbasierten temporalen semantischen Segmentierung
-
8 ist ein Ablaufdiagramm einer entitätsbasierten temporalen Segmentierung gemäß einer Ausführungsform. Anfänglich decodiert 810 das Modul 102 für eine entitätsbasierte temporale Segmentierung ein eingegebenes Video. Das decodierte eingegebene Video hat mehrere Videoframes, von welchen jeder eine oder mehrere Entitäten hat. Das Modul 102 für eine entitätsbasierte temporale Segmentierung wählt einen oder mehrere Abtast- bzw. Sample-Videoframes zur Segmentierung aus 820. Beispielsweise wählt das Modul 102 für eine entitätsbasierte temporale Segmentierung einen Videoframe aus allen fünf Videoframes des eingegebenen Videos aus. Für jeden ausgewählten Videoframe wendet das Modul 102 für eine entitätsbasierte temporale Segmentierung ein trainiertes Kommentierungsmodell auf den ausgewählten Abtast-Videoframe an 830. Das Modul 102 für eine entitätsbasierte temporale Segmentierung identifiziert 840 jede Entität in jedem ausgewählten Abtast-Videoframe basierend auf der Anwendung des trainierten Kommentierungsmodells. Jede identifizierte Entität in einem ausgewählten Abtast-Videoframe hat einen Zeitstempel, eine Aufschrift der Entität und einen Vertrauenswert, um die Wahrscheinlichkeit anzuzeigen, dass die Entität genau identifiziert ist.
-
Das Modul 102 für eine entitätsbasierte temporale Segmentierung erzeugt 850 eine zeitliche Serie für jede identifizierte Entität, wobei die zeitliche Serie die identifizierte Entität zu jedem Zeitpunkt und ihren entsprechenden Vertrauenswert über die gesamte Länge des eingegebenen Videos enthält. Das Modul 102 für eine entitätsbasierte temporale Segmentierung wendet eine Glättungsfunktion auf die zeitliche Serie jeder Entität an 860, um Rauschen zu eliminieren, das während des Kommentierungsprozesses erzeugt ist.
-
Für jede identifizierte Entität erzeugt das Modul 102 für eine entitätsbasierte temporale Segmentierung individuelle Segmente, die die identifizierte Entität enthalten, über die gesamte Länge des eingegebenen Videos. Ein individuelles Segment für eine Entität hat einen Startpunkt und einen Endpunkt, die die Länge des Segments definieren. Bei einer Ausführungsform erfasst 870 das Modul 102 für eine entitätsbasierte temporale Segmentierung ein Paar von Grenzen, die ein Segment definieren, basierend auf vordefinierten Beginn- und Versatz-Schwellenwerten. Basierend auf der neuen Anordnung und einer Analyse der individuellen Segmente für identifizierte Entitäten erzeugt das Modul 102 für eine entitätsbasierte temporale Segmentierung eine gesamte Segmentierung für das gesamte eingegebene Video.
-
Die obige Beschreibung ist enthalten, um die Operation der bevorzugten Ausführungsformen darzustellen und hat nicht die Bedeutung, den Schutzumfang der Erfindung zu beschränken. Der Schutzumfang der Erfindung ist nur durch die folgenden Ansprüche zu beschränken. Aus der obigen Diskussion werden Fachleuten auf dem relevanten Gebiet viele Variationen offensichtlich werden, die noch durch den Sinngehalt und Schutzumfang der Erfindung umfasst sein würden.
-
Die Erfindung ist in speziellem Detail in Bezug auf eine mögliche Ausführungsform beschrieben worden. Fachleute auf dem Gebiet werden erkennen, dass die Erfindung in anderen Ausführungsformen ausgeführt werden kann. Zuerst ist die spezielle Namensgebung der Komponenten, eine Großschreibung von Ausdrücken, der Attribute, der Datenstrukturen oder irgendein anderer Programmier- oder Strukturaspekt nicht verpflichtend oder signifikant und die Mechanismen, die die Erfindung oder ihre Merkmale implementieren, können andere Namen, Formate oder Protokolle haben. Weiterhin kann das System über eine Kombination von Hardware und Software implementiert werden, wie es beschrieben ist, oder gänzlich in Hardwareelementen. Ebenso ist die spezielle Aufteilung einer Funktionalität zwischen den verschiedenen Systemkomponenten, die hierin beschrieben sind, lediglich beispielhaft und nicht verpflichtend; Funktionen, die durch eine einzige Systemkomponente durchgeführt sind, können stattdessen durch mehrere Komponenten durchgeführt werden und Funktionen, die durch mehrere Komponenten durchgeführt sind, können stattdessen durch eine einzige Komponente durchgeführt werden.