-
Stand der Technik
-
In der Videoanalytik ist es wichtig, Video-Vordergrundbilder (z. B. bewegte Objekte von Interesse) von einem Videohintergrund (z. B. statischen Teilen des Bildes) zu unterscheiden. Es gibt derzeit verschiedene Methoden, um den Vordergrund von dem Hintergrund zu unterscheiden, aber diese können den Hintergrund in dynamischen Szenen, die texturierte und nicht texturierte Objekte enthalten, nicht genau und schnell berechnen (z. B. Beleuchtungsänderungen, Kamerabewegungen, Änderungen in der Szene usw.). Dies ist bei Echtzeit-Online-Anwendungen besonders wichtig, bei denen die Verfügbarkeit eines genauen Hintergrundmodells auf Wunsch benötigt wird. Dies ist mit derzeit verfügbaren Lösungen nicht möglich.
-
Es ist demnach wünschenswert und vorteilhaft, ein Verfahren zur Echtzeit-Online-Extraktion eines Hintergrundmodells aus einem Video-Stream bereitzustellen. Dieses Ziel wird durch die Ausführungsformen der vorliegenden Erfindung erreicht.
-
Zusammenfassung der Erfindung
-
Ausführungsformen der vorliegenden Erfindung stellen Verfahren zum Analysieren eines Streams von Video-Einzelbildern bereit, um Vordergrundbilder in Echtzeit für eine sofortige Online-Verwendung von Hintergrundbildern zu unterscheiden. In bestimmten Ausführungsformen werden durch das Verfahren Ergebnisse erzielt, die inkrementell mit jedem neuen Einzelbild, das verarbeitet wird, verbessert werden.
-
Daher wird gemäß einer Ausführungsform der vorliegenden Erfindung eine Vorrichtung zum Extrahieren eines Hintergrundmodells aus einem Video-Stream von Einzelbildern bereitgestellt, wobei die Vorrichtung umfasst: (a) eine transitorische oder nicht-transitorische Datenspeichervorrichtung zum Speichern von Daten und ausführbaren Programmcodes; (b) einen Prozessor, der Folgendes implementiert: (c) ein Hintergrundmodell; (d) einen Blockdeskriptor-Computer zum Unterteilen eines Einzelbildes in ein rechteckiges Array von Blöcken und zum Berechnen eines Blockdeskriptors eines Blocks; (e) einen Blockdeskriptor eines aktuellen Einzelbildes des Video-Streams; (f) einen Blockdeskriptor eines vorhergehenden Einzelbildes des Video-Streams; (g) einen Anpassungsdetektor, um zu bestimmen, ob ein Blockdeskriptor des aktuellen Einzelbildes im Wesentlichen derselbe wie ein Blockdeskriptor des vorhergehenden Einzelbildes ist; (h) einen Staging-Cache zum Speichern von Blockdeskriptoren; und (i) ein Aktualisierungsprogramm zum Aktualisieren des Hintergrundmodells gemäß einem Blockdeskriptor im Staging-Cache.
-
Zusätzlich wird gemäß einer weiteren Ausführungsform der vorliegenden Erfindung ein Verfahren zur Verwendung eines Datenprozessors zum Extrahieren eines Hintergrundmodells aus einem Video-Stream von Einzelbildern in einem transitorischen oder nicht-transitorischen Speicher bereitgestellt, wobei das Verfahren umfasst: (a) Erhalten eines Einzelbildes aus dem Video-Stream durch den Datenprozessor; (b) Unterteilen des Einzelbildes durch den Datenprozessor in ein rechteckiges Array von Blöcken; (c) für jeden Block in dem rechteckigen Array: (d) Berechnen eines aktuellen Blockdeskriptors des Blocks durch den Datenprozessor; (e) wenn ein aus dem Hintergrundmodell abgerufener entsprechender Block einen Blockdeskriptor hat, der im Wesentlichen nicht mit dem aktuellen Blockdeskriptor übereinstimmt, dann gilt: (f) wenn der entsprechende Block des vorherigen Einzelbildes einen Blockdeskriptor hat, der im Wesentlichen mit dem aktuellen Blockdeskriptor übereinstimmt, und den aktuellen Blockdeskriptor für mindestens eine vorbestimmte Anzahl von Einzelbildern angepasst hat, dann wird der aktuelle Blockdeskriptor in einen Staging-Cache im transitorischen oder nicht-transitorischen Speicher verschoben; und (g) Aktualisieren des Hintergrundmodells durch den Datenprozessor gemäß einem Blockdeskriptor, der aus dem Staging-Cache ausgewählt ist.
-
Darüber hinaus wird gemäß einer weiteren Ausführungsform der vorliegenden Erfindung ein Computerprodukt bereitgestellt, das ausführbare Codebefehle in einer transitorischen oder nicht transitorischen Speichervorrichtung enthält, wobei die Befehle, wenn sie von einem Datenprozessor ausgeführt werden, den Datenprozessor veranlassen, ein Verfahren zum Extrahieren eines Hintergrundmodells aus einem Video-Stream von Einzelbildern in einem transitorischen oder nicht transitorischen Speicher durchzuführen, wobei das Verfahren umfasst: (a) Erhalten eines Einzelbildes aus dem Video-Stream durch den Datenprozessor; (b) Unterteilen des Einzelbildes in ein rechteckiges Array von Blöcken durch den Datenprozessor; (c) für jeden Block in dem rechteckigen Array: (d) Berechnen eines aktuellen Blockdeskriptors des Blocks durch den Datenprozessor; (e) wenn ein aus dem Hintergrundmodell abgerufener entsprechender Block einen Blockdeskriptor hat, der im Wesentlichen nicht mit dem aktuellen Blockdeskriptor übereinstimmt, dann gilt: (f) wenn der entsprechende Block des vorherigen Einzelbildes einen Blockdeskriptor hat, der im Wesentlichen mit dem aktuellen Blockdeskriptor übereinstimmt, und den aktuellen Blockdeskriptor für mindestens eine vorbestimmte Anzahl von Einzelbildern angepasst hat, dann wird der aktuelle Blockdeskriptor in einen Staging-Cache im transitorischen oder nicht-transitorischen Speicher verschoben; und (g) Aktualisieren des Hintergrundmodells durch den Datenprozessor gemäß einem Blockdeskriptor, der aus dem Staging-Cache ausgewählt ist.
-
Kurze Beschreibung der Zeichnungen
-
Der offenbarte Gegenstand wird am besten unter Bezugnahme auf die folgende detaillierte Beschreibung verstanden, wenn diese in Verbindung mit den beigefügten Zeichnungen gelesen wird, in denen:
-
1 einen Video-Stream von Bildern und Bilder daraus sowie ein konzeptionelles Blockdiagramm eines Systems zur Hintergrundextraktion daraus gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
2A ein Diagramm für eine Hintergrundmodell-Datenstruktur gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
2B ein Diagramm für einen Bild-Blockdeskriptor gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
3 ein Flussdiagramm eines Verfahrens zur Hintergrundmodell-Extraktion gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
Zur Vereinfachung und Klarheit der Darstellung sind die in den Figuren gezeigten Elemente nicht notwendigerweise maßstabsgetreu gezeichnet, und die Abmessungen einiger Elemente können gegenüber anderen Elementen übertrieben dargestellt sein. Zusätzlich können in den Figuren Bezugszeichen wiederholt dargestellt sein, um entsprechende oder analoge Elemente anzuzeigen.
-
Ausführliche Beschreibung
-
1 zeigt einen Videobild-Stream 101, der beispielhafte Einzelbilder 101A, 101B, 101C, 101D und 101E enthält, die ein Objekt von Interesse 131 (ein Fahrzeug 131) zeigen, das sich im Vordergrund vor einer Hintergrundszene 133 (einer Straße und einem Gebäude 133) bewegt. Gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung wird ein Einzelbild in ein rechteckiges Array von ”Bildblöcken” (hier auch als ”Blöcke” bezeichnet) unterteilt, wie beispielsweise für das Einzelbild 101B, das in das rechteckige Array 102B unterteilt ist, und für das Einzelbild 101C, das in das rechteckige Array 102C unterteilt ist, gezeigt. In verschiedenen Ausführungsformen werden die Blöcke innerhalb eines Arrays durch ihre horizontale Position i (Spaltennummer von links nach rechts) und ihre vertikale Position k (Zeilennummer von oben nach unten), wie gezeigt, angegeben (wobei der Anfangsindex 1 ist). Gemäß bestimmten Ausführungsformen wird ein Bildblock durch einen ”Blockdeskriptor” beschrieben, der Informationen zum Rekonstruieren des Teils des Einzelbildes in dem Block enthält. In einer verwandten Ausführungsform enthält ein Blockdeskriptor Daten, die in Übereinstimmung mit einem typischen grafischen Bilddatenformatstandard formatiert sind.
-
Eine Ausführungsform der Erfindung stellt einen Datenprozessor 121 bereit, der eine transitorische oder nicht-transitorische Datenspeichereinheit 123 zum Aufbewahren von Daten und einen ausführbaren Programmcode für die folgenden Elemente enthält: ein Blockdeskriptor-Computermodul 141 zum Unterteilen eines Einzelbildes in ein rechteckiges Array von Blöcken und zum Berechnen eines Blockdeskriptors eines Blocks; einen Blockdeskriptor 105A des Blocks i = 9, k = 8 des Einzelbildes 101B; einen Blockdeskriptor 105B des Blocks i = 9, k = 8 des Einzelbildes 101C; einen Staging-Cache-Bereich 107 im Datenspeicher 123, ein Hintergrundmodell 103, das ein Hintergrundbild 113 darstellt, und ein Anpassungsdetektormodul 109 zum Erfassen des Zustands, in dem ein aktueller Blockdeskriptor (wie beispielsweise der Blockdeskriptor 105B) im Wesentlichen denselben Bildblock wie den des unmittelbar vorhergehenden Blockdeskriptors (wie z. B. Blockdeskriptor 105A) darstellt. Das Anpassungsdetektormodul 109 erfasst auch den Zustand, in dem der aktuelle Blockdeskriptor nicht im Wesentlichen derselbe wie der unmittelbar vorhergehende Blockdeskriptor ist. In verschiedenen Ausführungsformen wird eine Übereinstimmung zwischen zwei Blöcken nach normalisierter Kreuzkorrelation und dem Mittelwert der absoluten Differenzen bestimmt. In einer verwandten Ausführungsform wird der Mittelwert der absoluten Differenzen durch die mittlere Differenz kompensiert.
-
Gemäß einer Ausführungsform der vorliegenden Erfindung werden die verschiedenen Komponenten und Module, die hier beschrieben und dargestellt sind, durch den Datenprozessor 121 über einen ausführbaren Code implementiert, der in der transitorischen oder nicht-transitorischen Speichereinheit 123 enthalten ist.
-
Das Einzelbild 101C folgt unmittelbar dem Einzelbild 101B im Video-Stream 101, und gemäß dieser Ausführungsform werden in diesem speziellen, nicht einschränkenden Beispiel die Blöcke des Einzelbildes 101C mit den entsprechenden Blöcken des Einzelbildes 101B verglichen, um Änderungen zu erfassen. In diesem nicht einschränkenden Beispiel vergleicht das Anpassungsdetektormodul 109 den Blockdeskriptor i = 9, k = 8 des Einzelbildes 101C mit dem Blockdeskriptor i = 9, k = 8 des Einzelbildes 101B, um zu bestimmen, ob im Wesentlichen das gleiche Bildfragment in dem Block bei i = 9, k = 8 vorhanden ist. In diesem Beispiel ist der Block bei i = 9, k = 8 im Wesentlichen nicht gleich, weil sich das Objekt von Interesse, d. h. das Fahrzeug 131, in Bezug auf die Hintergrundszene, die Straße und das Gebäude 133 bewegt hat.
-
Stimmt ein Blockdeskriptor in dem aktuellen Einzelbild mit dem entsprechenden Blockdeskriptor im Hintergrundmodell überein, wird der Blockdeskriptor des Hintergrundmodells direkt über den Blockdeskriptor des aktuellen Einzelbildes aktualisiert. Stimmt ein Blockdeskriptor in dem aktuellen Einzelbild nicht mit dem entsprechenden Blockdeskriptor des Hintergrundmodells überein, sondern ist im Wesentlichen gleich wie der entsprechende Blockdeskriptor des vorherigen Einzelbildes, dann wird der aktuelle Blockdeskriptor in den Staging-Cache 107 verschoben bzw. gesetzt, der Blöcke von Kandidaten zum Aktualisieren des Hintergrundmodells 103 enthält. Wenn der Blockdeskriptor im Staging-Cache 107 mit dem entsprechenden Blockdeskriptor des aktuellen Einzelbildes für mindestens eine vorbestimmte Anzahl von Einzelbildern übereinstimmt, aktualisiert ein Aktualisierungsmodul 143 das Hintergrundmodell 103 gemäß dem Blockdeskriptor, indem es den Blockdeskriptor in den entsprechenden Block des Hintergrundmodells 103 setzt. In verschiedenen Ausführungsformen enthält das Aktualisierungsmodul 143 ein Best-Fit-Blockselektormodul 145, um einen Block eines Kandidaten aus dem Staging-Cache 107 auszuwählen, der am besten in die lokale Umgebung (die unmittelbaren Nachbarn des Blocks) passt. In einer verwandten Ausführungsform wird die Qualität der lokalen Anpassung durch das Best-Fit-Blockselektormodul 145 auf der Grundlage der spektralen Ansprechintensitäten und dem Grad der Diskontinuität zwischen benachbarten Blöcken berechnet, wobei die Lösung mit dem bekannten Iterated-Conditional-Modes-(ICM)-Algorithmus gefunden wird.
-
Durch Analysieren der Änderungen der Bildblöcke, wie nachstehend detailliert beschrieben, extrahiert die Vorrichtung gemäß diesen Ausführungsformen der vorliegenden Erfindung das Hintergrundbild 113 aus dem Video-Stream 101.
-
2A veranschaulicht eine allgemeine Datenstruktur für das Hintergrundmodell 103 gemäß einer Ausführungsform der vorliegenden Erfindung. Die Blockdeskriptoren 201, 203 und 207 stellen Blockdeskriptoren in der ersten Spalte eines N × M-Arrays dar, wobei die Auslassungspunkte 205 angeben, dass zusätzliche Blockdeskriptoren von 2 bis M in der ersten Spalte nicht gezeigt sind. Die Blockdeskriptoren 209, 211 und 215 stellen Blockdeskriptoren in der zweiten Spalte des N × M-Arrays dar, wobei die Auslassungspunkte 213 angeben, dass zusätzliche Blockdeskriptoren von 2 bis M in der zweiten Spalte nicht gezeigt sind. Ferner stellen Blockdeskriptoren 219, 221 und 225 Blockdeskriptoren in der N-ten Spalte des N × M-Arrays dar, wobei die Auslassungspunkte 223 angeben, dass zusätzliche Blockdeskriptoren von 2 bis M in der N-ten Spalte nicht gezeigt sind, und die Auslassungspunkte 217 geben an, dass die Blockdeskriptoren für die Spalten 3 bis N nicht dargestellt sind.
-
2B veranschaulicht eine allgemeine Datenstruktur für einen Blockdeskriptor 241 gemäß einer weiteren Ausführungsform der vorliegenden Erfindung. Der Blockdeskriptor 241 wird durch i und k indiziert und enthält Blockbilddaten 243 in Übereinstimmung mit einem typischen grafischen Bilddatenformatstandard. Der Blockdeskriptor 241 enthält auch eine Einzelbildzahl 245, die die Anzahl von Einzelbildern angibt, für die die Blockbeschreibung im Wesentlichen mit dem entsprechenden Block der Einzelbilder aus dem Video-Stream übereinstimmt.
-
3 zeigt ein Flussdiagramm eines Verfahrens zur Verwendung eines Datenprozessors (wie beispielsweise des Datenprozessors 121 in 1), um ein Hintergrundmodell gemäß einer Ausführungsform der vorliegenden Erfindung zu extrahieren. Ein Schritt 301 erhält das nächste Einzelbild 101B. In einem Schritt 305 wird das Einzelbild 101B in ein rechteckiges Array von Blöcken unterteilt. Am Anfang einer Schleife 307 für jeden Block gilt: ein Schritt 309 berechnet einen Blockdeskriptor 311, der an einem Entscheidungspunkt 313 eingegeben wird. Ein Blockdeskriptor wird aus dem Hintergrundmodell 103 abgerufen. Wenn die Blockdeskriptoren im Wesentlichen übereinstimmen, dann wird der entsprechende Block im Hintergrundmodell 103 direkt mit dem Block aus dem aktuellen Einzelbild aktualisiert. Stimmen die Blockdeskriptoren im Wesentlichen nicht überein, dann wird am Entscheidungspunkt 315, wenn der Blockdeskriptor 311 über mindestens eine vorbestimmte Anzahl von Einzelbild stabil ist (d. h. wenn die Blockdeskriptoren im Wesentlichen über die mindestens vorbestimmte Anzahl von Einzelbildern übereinstimmen), der Blockdeskriptor 311 in einem Schritt 317 in den Staging-Cache 107 gesetzt. Die Bestimmung der Anzahl von Einzelbildern, bei denen die Blockdeskriptoren im Wesentlichen übereinstimmen, wird gemäß einer Einzelbildzahl 303 eines Blockdeskriptors aus dem aktuellen Einzelbild gebildet. Die Einzelbildzahl des aktuellen Blockdeskriptors 311 ist eins plus den Wert des entsprechenden Blockdeskriptors des vorherigen Einzelbildes, wenn die beiden übereinstimmen, und ansonsten null. In einem Schritt 319 wird das Hintergrundmodell 103 mit dem Kandidaten, der am besten passt, in dem Staging-Cache 107 aktualisiert (d. h. der Best-Fit-Blockdeskriptor wird in das Hintergrundmodell 103 verschoben). In bestimmten Ausführungsformen der Erfindung ist der am besten geeignete Kandidat von allen möglichen Kandidaten in dem Staging-Cache 107 derjenige, der am besten in die lokale Umgebung passt (der Block, der am besten zu seinen unmittelbaren Nachbarn passt). In einer verwandten Ausführungsform wird die Qualität der lokalen Anpassung basierend auf spektralen Ansprechintensitäten und dem Grad der Diskontinuität zwischen benachbarten Blöcken berechnet, wobei die Lösung gemäß dem ICM-Algorithmus gefunden wird.
-
Die Schleife setzt sich an einem Ende der Schleife 321 fort. Wenn es mehr Blöcke gibt, wird die Schleife wiederholt. Andernfalls endet das Verfahren an einem Endepunkt 323.
-
Gemäß einer verwandten Ausführungsform der vorliegenden Erfindung gibt es im Fall des ersten Einzelbildes des Video-Streams 101 kein vorheriges Einzelbild, und daher wird jeder Block durch den Schritt 315 in den Staging-Cache 107 verschoben, und das Hintergrundmodell 103 mit den Blöcken des ersten Einzelbildes initialisiert.
-
Zusätzlich wird gemäß einer weiteren Ausführungsform der vorliegenden Erfindung ein Computerprodukt bereitgestellt, das ausführbare Codebefehle in einer transitorischen oder nicht-transitorischen Speichervorrichtung enthält, wobei die Anweisungen, wenn sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, ein Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung auszuführen.