Personenverfolgung

Die Personenverfolgung basiert auf einer bewegungsgesteuerten Objektextrahierung: Bewegende Objekte heben sich vom Hintergrund ab und können mit einem sogenannten Hintergrundmodell erkannt werden.

Dadurch ergibt sich eine Maske, die die bewegten Objekte enthält. Kein Hintergrundmodell aber kann wechselnde Lichtbedingungen, Pixelrauschen, Objekte in der Farbe des Hintergrundes und andere Probleme perfekt modellieren. D.h. das Ergebnis wird immer eine Maske sein, die Löcher enthält oder irrelevante Regionen. Das heißt, dass wir die Maske noch vor-verarbeiten, bevor daraus Objekte extrahieren: Löcher werden geschlossen, zu kleine, aktive Regionen werden verworfen.

Sie befinden sich hier:

Bild 1: Entwicklungsumgebung: in blau die erkannten Objekte, die farbigen Trajektorien sind die aktuell verfolgten Objekte, © Team Reulke
Bild 1: Entwicklungsumgebung: in blau die erkannten Objekte, die farbigen Trajektorien sind die aktuell verfolgten Objekte, © Team Reulke

Nun sind die Objekte extrahiert, die Haupteigenschaft der einzelnen Objekte ist deren Koordinatenzentrum. Anhand dieses Objektzentrums bestimmen wir die Zuordnung eines Objektes zwischen zwei Aufnahmen. Das Problem der Zuordnung ist ebenfalls kein einfach zu lösendes. Mehrere Objekte, die sich potenziell sehr nahe kommen, müssen im folgenden Zeitschritt wieder gefunden und korrekt assoziiert werden. Problematisch sind perspektivische Überlappungen von Objekten. Dieses Problem existiert unabhängig von der Kameraposition, je höher und zentrierter die Kamera aber hängt, desto weniger schwerwiegend ist es.

Da Objekte in der Bewegungsmaske bei jedem Bild etwas anders aussehen und aufgrund der angesprochenen Zuordnungsproblematik, implementierten wir ein Vorhersagemodell. Diese Vorhersage prognostiziert die Objektpositionen im nächsten Bild. Eine dieser Vorhersagen ist ein sogenanntes Kalmanfilter. Dieses Filter entwickelt, pro Objekt, ein Zustandsmodell durch die Zeit. Der Zustand des Objektes beinhaltet Position und Geschwindigkeit. Schnelle Änderungen werden im ersten Moment als Rauschen angesehen. Dadurch erhalten wir sehr stabile und glatte Trajektorien von Objekten.

Die zweite Vorhersagetechnik basiert auf dem "Optical Flow", ein Konzept welches den Pixelfluss zweier aufeinander folgender Bilder berechnet. Jedem Pixel wird ein Bewegungsvektor zugeordnet und über die gesamte Pixelmenge eines Objektes bekommen wir eine robuste Vorhersage der Bewegung.

Wir implementieren schlussendlich noch eine Methode, die verlorengegangene Objekte intelligent einem aktuellen Objekt zuordnet. Damit werden Lücken in den Trajektorien vermieden.

Da Rechenoperationen auf den Bildern immer sehr teuer sind, implementierten wir die Operationen auf einer sehr schnellen Grafikkarte. Diese hat den Vorteil, dass tausende Rechenkerne parallel angesteuert werden. Dadurch sind Bildoperationen extrem schnell.

Eine ganze Reihe von robusten, kaskadiert geschalteten Algorithmen löst also ziemlich robust die große Menge an Problemen, die bei automatischen Bildverarbeitungsaufgaben immer auftreten. Diese Probleme lassen sich nicht schon am Anfang lösen, jede Kamera besitzt Pixelrauschen, fast jede Umgebung hat stark und schnell variierende Beleuchtungsänderungen, jede Kameraposition hat Probleme mit perspektivischen Überlappungen und überall gibt es Situationen in denen Objekte im Hintergrund verschwinden.