Nach erfolgter Vordergrund-/Hintergrunderkennung wird eine Maske erstellt. Da die einzelnen Teile eines Objekts aufgrund von Umgebungsrauschen eventuell nicht miteinander verbunden sind, werden sie in einem rechenintensiven Prozess zu einem Gesamtobjekt zusammengefügt. Bei dieser „morphologischen Ausdehnung“ wird ein Raster auf die Maske gelegt und es werden die Vordergrund- Pixel in den einzelnen Rasterabschnitten gezählt. Anschließend werden weitere Pixel an den Stellen aktiviert, an denen die Zählung darauf hindeutet, dass getrennte Objekte zusammengefügt werden sollten.
Nach der morphologischen Ausdehnung und dem Verbinden der Einzelteile wird für jedes Objekt ein begrenzender Rahmen erstellt, der in Form eines möglichst kleinen Rechtecks das gesamte Objekt umschließt, so wie es in verschiedenen Frames erscheint. Das Ergebnis ist ein segmentiertes Objekt (Bild 2).
Die Verfolgung segmentierter Vordergrundobjekte setzt drei Schritte voraus: Zunächst muss für den aktuellen Frame vorausberechnet werden, wo sich die einzelnen Objekte befinden sollten. Danach muss ermittelt werden, welches Objekt der Beschreibung am ehesten entspricht, um schließlich den Bewegungsverlauf so zu korrigieren, dass der nächste Frame vorausberechnet werden kann. Der erste und der dritte Schritt werden mittels eines rekursiven Kalman-Filters ausgeführt. Da sich in einem Einzel-Frame nur die Position des Objekts feststellen lässt, müssen Bewegungsgeschwindigkeit und Folgeposition mithilfe von Matrixberechnungen ermittelt werden.
Zu Beginn des Prozesses wird das Filter auf die Position des Vordergrundobjekts im Verhältnis zum Hintergrundmodell initialisiert. Das Filter berechnet anschließend für jeden Frame, in dem das Objekt verfolgt wird, die relative Position des Vordergrundobjekts im Folge- Frame voraus. Wechselt die Szene zum nächsten Frame, stellt das Filter die Objektposition fest und korrigiert den Bewegungsverlauf. Beim zweiten Schritt im Verfolgungsprozess werden Daten assoziiert und Objekte aufgrund ähnlicher Merkmale über mehrere Frames hinweg als identisch identifiziert. Größe, Form und Position eines Objekts können anhand der Rahmen und ihrer Überlappungen zwischen verschiedenen Frames bestimmt werden. Die Bewegungsgeschwindigkeit lässt sich mit Hilfe des Kalman-Filters vorausberechnen, und über Histogramme können verschiedenen Objekten bestimmte Farben zugeordnet werden.
Allerdings können sich diese Merkmale entweder einzeln oder in ihrer Gesamtheit auch ändern – zum Beispiel in einer Video-Aufnahme eines weißen LKW mit rotem Führerhaus, der sich auf einer Straße der Kamera nähert: Nach einiger Zeit biegt der Lkw in eine Einfahrt ein, fährt rückwärts wieder heraus und entfernt sich dann in der entgegengesetzten Richtung.
Im Laufe der Szene haben sich sämtliche Objektmerkmale geändert: Größe, Form, Geschwindigkeit und Farbe. Um den Lkw präzise identifizieren zu können, muss die Software all diese Änderungen berücksichtigen. Werden mehrere Objekte verfolgt, muss die Software in der Lage sein, die Merkmale immer dem richtigen Objekt zuzuordnen. Bild 3 zeigt zwei Anwendungsbeispiele.
Klassifizierung
Die komplexen Bedingungen bei der Objektverfolgung bringen gewisse Probleme mit sich, was die Klassifizierung der Objekte angeht. Während das System noch relativ einfach registrieren kann, dass irgendetwas eine Linie im Bild überschritten hat, wird es schon schwieriger, festzustellen, dass es sich um eine Person handelt. Zwar können Umfang und Bewegungsgeschwindigkeit eines Objekts einen Vektor für eine Grobklassifizierung liefern, aber für eine feinere Klassifizierung benötigt das System zusätzliche Daten. Größere Objekte liefern mehr Informationen in Form von Pixeln, allerdings kann eine große Pixelzahl die Klassifizierung verlangsamen. Durch Anwendung von Dimensions-Reduktionsverfahren kann hier eine Reaktion in Echtzeit ermöglicht werden. Für spätere Untersuchungen stehen dabei weiterhin die kompletten Pixeldaten in den gespeicherten Frames zur Verfügung.
Neben der Frage, wie sich Objekte klassifizieren lassen, muss für eine effektive VCA-Implementierung noch eine Reihe anderer Probleme gelöst werden. Hierzu gehören etwa Lichtänderungen, die durch die Tageszeit bedingt sind oder durch Spiegelungen auf Wasseroberflächen, durch Wolken, Wind (Bewegung von Bäumen), Regen, Schnee oder Nebel. Eine weitere Herausforderung stellen Objekte dar, deren Wege sich kreuzen, da hier die Vordergrund-Pixel der einzelnen Objekte kurzzeitig ineinanderfließen. Sollen Objekte in Aufnahmen von verschiedenen Kameras verfolgt werden, wird die Sache noch komplexer. An der Lösung dieser Aufgaben wird nach wie vor gearbeitet.
VCA-Systemdesign
Die Implementierung von VCA und einer entsprechenden Video-Codierung verlangt nach besonders leistungsfähigen Prozessoren und variablen Designs. Neu aufkommende analytische Verfahren erfordern flexible Programmierungsoptionen. Möglich ist dies mit Prozessoren, die eine große Leistung und programmierbare DSPund RISC-Mikroprozessorkerne bieten, sowie mit Coprozessoren in der Video-Hardware. Zudem müssen im Prozessor schnell arbeitende Peripheriebausteine und Video-Signalketten integriert sein, um die Anzahl der Systemkomponenten und die Kosten niedrig zu halten.
Ein Beispiel hierfür ist der Prozessor TMS320DM644x, der auf der DaVinci-Technologie basiert. Zwei DaVinci-Prozessoren (Bild 4) bieten eine ausreichende Leistung, um High-End-VCA- und Codierungsfunktionen bei einer HD-Video-Quelle (High-Definition) mit einer Auflösung von 720 × 1080 Pixeln und 30 Frames pro Sekunde (720p30 HD) zu unterstützen. Mit einigen kleineren Anpassungen kann das Design in eine abgespeckte Version mit lediglich einer Karte und einem Prozessor umgewandelt werden. Diese bietet dieselben Leistungsmerkmale wie die Zwei-Prozessor-Version, allerdings mit mittlerer Leistung bei VCA und HD-Codierung.
Dieser Lösungsansatz zur Integration von VCA-Funktionen in Kameras ermöglicht eine robuste Netzwerk-Implementation. Alternativ dazu kann die VCA-Software auch in PCs integriert werden, die als Bündelungspunkt für mehrere Kameras fungieren. Zusätzlich zum VCA-Funktionsablauf muss unter Umständen noch eine Vorverarbeitung mit De-Interleaving erfolgen, bevor die Vordergrund-/Hintergrunderkennung und andere Analyseschritte durchgeführt werden. In der Anwendungs- Software können nötigenfalls weitere Verarbeitungsschritte zur Objekterkennung oder für andere Zwecke eingebaut werden. Die beiden Design- Versionen (ein Prozessor bzw. zwei Prozessoren) lassen entsprechenden Freiraum für zusätzliche Software- Funktionen.
Wenn man eine Kameravernetzung über IP vornehmen möchte, sind die in Bild 5 gezeigten Verarbeitungsmodule notwendig. Das Isolieren von Vordergrundobjekten vom Hintergrund mithilfe adaptiver Verfahren, die anschließende Objektverfolgung und gegebenenfalls die Klassifizierung verdächtiger Aktivitäten sind verschiedene Aspekte der VCA, die ein hohes Maß an Echtzeit- Verarbeitungsleistung und ein anpassbares System erfordern.
DSP-basierte Video-Prozessoren bieten die notwendige Rechenleistung für VCA- und Video-Codierungsfunktionen und erlauben dank flexibler Programmierungsoptionen entsprechende Anpassungen, falls sich Anwendungsanforderungen und Techniken ändern. So ermöglichen diese Technologien bei Video-Sicherheitssystemen eine ganz neue Qualitätsstufe.