Ziel des Projekts
Das Ziel des Projektes bestand in der Entwicklung eines kamerabasierten Systems für Großveranstaltungen, das Sicherheits- und Serviceaspekte vereint. Die Anwendung soll mit Hilfe von Kameras die Umgebung analysieren und den Besuchern ermöglichen, mittels eines Smartphones schnell zu interessanten Orten auf dem Gelände zu navigieren (siehe Abbildung 1). Bei der Navigation sollen Personendichte und Strömungen entlang des Pfades sowie die Wartedauer am Ziel berücksichtigt werden.
Abbildung 1: Smartphone App für die Besucher.
Die Informationen zu Personendichte und Personenströmen sollen zusätzlich für eine automatische Ereignisdetektion verwendet werden, um kritische Situationen bereits bei der Entstehung zu detektieren.
Während der Großveranstaltung soll das System den Sicherheitskräften wertvolle Informationen über die Besucherverteilung bereitstellen. Nach dem Event sollen dem Veranstalter präzise statistische Informationen über die Auslastung der Infrastruktur, der durchschnittlichen Wartezeit und den detektierten ungewöhnlichen Situationen bereitgestellt werden.
Auf dieser Seite sollen die grundlegenden Komponenten von EventMAP vorgestellt werden.
Dichteschätzung
Es wurden Algorithmen entwickelt, die die Anzahl der Personen im Sichtbereich jeder Kamera schätzen. Die Ergebnisse der einzelnen Kameras werden miteinander kombiniert und auf einen Grundriss projiziert.
Die geschätzte Personenzahl stellt eine wesentliche Grundlage für die weiteren Algorithmen dar.
Die Bestimmung der Personendichte stellt ein wesentliches Element im Forschungsthema dar. Es wurden verschiedene Verfahren untersucht und implementiert. Die besten Ergebnisse lieferten die Dichteschätzung auf Basis der Merkmale von Gabor-Filtern [2] und Local Binary Patterns (LBP) [1]. Als Klassifikatoren wurden eine support vector maschine (SVM) und ein Künstliches Neuronales Netz (KNN) trainiert (siehe Abbildung 2). Durch die Kombination der Klassifikationsergebnisse von SVM und KNN wird die Robustheit der Dichteschätzung erhöht.
Abbildung 2: Blockschaltbild zur Dichteschätzung.
In Abbildung 3 ist das Ergebnis einer Dichteschätzung dargestellt. Eine hohe Personendichte ist rot markiert, geringe Dichte grün.
Abbildung 3: Dichteschätzung bei der Messe Berlin Vital.
Die Dichteinformationen, die aus den Bildern der einzelnen Kameras berechnet wurden, werden auf einen Grundriss projiziert (Abbildung 4). Dadurch ergeben sich drei erhebliche Vorteile:
Abbildung 4: Grundriss mit Dichteinformationen.
Personenströme
Die Extraktion von Personenströmen ist ein weiteres wichtiges Element im Forschungsthema. Wie bei der Personendichte wurden die Strömungsdaten aus den Bildern der einzelnen Kameras berechnet und bei der Projektion auf den Grundriss fusioniert. Alle weiteren Algorithmen arbeiten anschließend mit den projizierten Strömungs- und Dichtedaten.
Für die Erfassung der Personenströme in der Szene wurde der optische Fluss berechnet. Es wurden drei verschiedene Verfahren implementiert, deren Ergebnisse miteinander kombiniert werden können. Aus Performancegründen wird die Berechnung auf die GPU ausgelagert. In Abbildung 5 ist die Strömungsrichtung in der Szene dargestellt. Die Pfeile repräsentieren die gemittelte Bewegungsrichtung von einem 15x15 Pixel großen Bereich. Die Länge und Farbe kodieren die Geschwindigkeit (in px/s).
Abbildung 5: Strömungsrichtung in der Szene.
In Stausituationen oder Warteschlangen ist die Geschwindigkeit typischerweise sehr gering und eine Bewegung in aufeinanderfolgenden Bildern kaum messbar. Damit für diese Bereiche trotzdem der Personenstrom ermittelt werden kann, wurde das Modell des long flow entwickelt. Hierbei wird der optische Fluss aus Bildern berechnet, die zeitlich weiter auseinander liegen. In Abbildung 6 sind der normale optische Fluss und der long flow gegenübergestellt. Beim optischen Fluss in aufeinander folgenden Bildern (Bild links) sind in der Warteschlange kaum Bewegungen erkennbar. Beim long flow wird die Strömung deutlich sichtbar, allerdings kommt es in den Bereichen mit geringer Personendichte zu großen Fehlern. Der long flow wird also nur in Bereichen verwendet, in denen eine hohe Personendichte detektiert wurde.
Abbildung 6: Gegenüberstellung vom herkömlich berechneten optischen Fluss in der Szene und dem long flow.
Für die weitere Verarbeitung werden die Ergebnisse aus den einzelnen Kamerabildern auf den Grundriss projiziert. Dabei wird die perspektivische Verzerrung ausgeglichen und die Geschwindigkeit von Pixel pro Frame auf Meter pro Sekunde umgerechnet. In Abbildung 7 ist der Grundriss mit den projizierten Strömungsdaten dargestellt.
Abbildung 7: Personenströmung in der Szene.
Bewegungsmodellierung
Für die Simulation von Besucherströmen ist ein Modell entwickelt worden. Damit können Personenbewegungen bereits im Vorfeld simuliert werden, um kritische Bereiche im Aufbau zu identifizieren. Andererseits kann diese Simulation im laufenden Betrieb mit den berechneten Dichte- und Strömungsdaten durchgeführt werden, um die Bewegungen der nächsten Minuten zu antizipieren.
Zur Modellierung von Personenströmen wurde das social force model genutzt. Es ist ein kräftebasiertes Modell, das Motivationen, Wünsche und Instinkte berücksichtigt, um die Bewegungen von Agenten zu simulieren. Neben diesen Interaktionskräften, die dem Individuum entspringen, werden auch physikalische Kräfte formuliert, die auf jedes Individuum einwirken. So besitzen bspw. Wände ein Abstoßungspotential, was dafür sorgt, dass Personen einen Mindestabstand zu ihnen einhalten.
In Abbildung 8 wird die Simulation der Besucherströme mit dem social force model dargestellt. Es wurden 1000 Agenten erzeugt, die die Besucher repräsentieren. Das Beispiel zeigt die Anmeldung zu einem Marathon und exemplarisch wurden drei verschiedene Besuchertypen mit jeweils unterschiedlichen Zielen definiert. Es gibt männliche Läufer (blaue Punkte), weibliche Läufer (rote Punkte) und Skater (gelbe Punkte), die sich zunächst zu den entsprechend farbig markierten Bereichen bewegen wollen, um sich ihre Startnummern abzuholen. Anschließend wollen sie sich zum Ausgang bewegen. Abbildung 8 zeigt einen Zeitpunkt mitten in der Simulation.
Abbildung 8: Simulation von Besucherbewegungen auf der Messe Berlin Vital. Ein Besucher wird durch einen farbigen Punkt dargestellt.
Die Farbe des Punktes kodiert das individuelle Ziel der Besucher.
Abbildung 9 zeigt ein Bild aus einer Paniksimulation. Es wurde eine Gefahrenquelle eingefügt (das Feuersymbol). Diese Gefahrenquelle hat zum einen eine sehr starke Abstoßungskraft, was dazu führt, dass sich alle Agenten von der Gefahrenquelle wegbewegen. Zum anderen vergessen alle Agenten ihr aktuelles Ziel und haben nun eine starke Motivation, sich direkt zum Notausgang zu bewegen. Anhand der Simulation wird deutlich, dass der Notausgang zu klein dimensioniert ist, um eine reibungslose Evakuierung zu ermöglichen, da es schon nach kurzer Zeit zu einer Stausituation in diesem Bereich kommt.
Abbildung 9: Simulation einer Paniksituation.
Grundlage der bisher gezeigten Simulationen war eine festgelegte Anzahl an Agenten, die alle in einem Startbereich, mit der gleichen Startgeschwindigkeit losgelaufen sind. Als Weiterentwicklung wird die Anzahl der Agenten und deren Verteilung auf dem Gelände aus der Dichteschätzung abgeleitet. Die Startgeschwindigkeit der Agenten wird aus der durchschnittlichen Geschwindigkeit in den jeweiligen Bereichen der Strömungskarte entnommen. Die Simulation des Besucherverhaltens aus aktuellen Daten ermöglicht die Prädiktion von bestimmten Zuständen (Stau) und Engpässen in der Zukunft und erlaubt es dem Veranstalter, rechtzeitig Gegenmaßnahmen einzuleiten. In Abbildung 10 ist eine Startkonfiguration für eine Simulation dargestellt. Die benötigten Parameter werden automatisch aus den aktuellen Daten abgeleitet.
Abbildung 10: Simulation der Besucherbewegung mit dem social force model. Die Startparameter der Agenten wurden direkt
aus den aktuellen Daten abgeleitet. Unten links ist das Kamerabild dargestellt, rechts daneben der Grundriss mit den Dichteinformationen und oben die resultierende Startkonfiguration.
Ereignisdetektion
Im Themenkomplex Ereignisdetektion wurden Verfahren zur Einschätzung der Situation entwickelt. Es wurden unterschiedliche Ereignisklassen definiert, die anhand der erfassbaren Daten automatisch erkannt werden. Die Definition von Ereignisklassen lässt sich an die Veranstaltung und ihre lokalen Gegebenheiten anpassen. So ist es möglich, die Dichte- und Strömungsdaten vor einer Bühne anders zu bewerten als die Daten vor einem Notausgang.
Bei der Ereigniserkennung werden die bisher erfassten Informationen (Personendichte, Personenströmung) in Abhängigkeit von verschiedenen Bereichen auf dem Gelände ausgewertet. Folgende Ereignisse sind in den Daten erkennbar: Stau, zu voll, zu schnelle Bewegung, unbefugtes Betreten und normales Verhalten. Das Ereignis Panik ist in dem Bildmaterial nicht vorhanden, es wird im Rahmen dieser Untersuchung als eine hohe Bewegungsgeschwindigkeit bei gleichzeitig hoher Personendichte definiert.
Die Ereignisdetektion beruht auf sogenannten Fundamentaldiagrammen [3]. Um diese aufzustellen, wird der Grundriss in 1 m² große Bereiche unterteilt, in denen die mittlere Personendichte sowie Strömungsgeschwindigkeit bestimmt wird.
In Abbildung 11 sind auf der rechten Seite 5 Aufnahmen zu sehen, die in einem zeitlichen Abstand von etwa 7 min aufgenommen wurden. Links daneben sind für den markierten Bereich die Fundamentaldiagramme dargestellt, in denen für diesen Zeitraum die Dichte- und Strömungsdaten akkumuliert wurden. Es wird deutlich, wie sich bei zunehmender Fülle die Geschwindigkeit verringert und die Dichte ansteigt. Die Punktwolken sind sehr kompakt, nur wenige Ausreißer liegen außerhalb der 3-fachen Standardabweichung (markiert durch die Ellipse).
Abbildung 11: Rechts sind die Kamerabilder mit der Markierung des betrachteten Bildausschnitts zu sehen. Links sind die zugehörigen Fundamentaldiagramme abgebildet.
Zur Interpretation der Fundamentaldiagramme werden Auswertungsmasken benutzt. Die Auswertungsmasken für 3 verschiedene Bereiche sind in Abbildung 12 dargestellt. Die Koordinate mit der entsprechenden Geschwindigkeit und Personendichte führt so zu dem detektierten Ereignis.
Abbildung 12: Unterschiedliche Parametrierung der Ereignisdefinitionen für verschiedene Bereiche in der Szene.
Der Parameter v steht für die Geschwindigkeit des Personenstroms und ρ steht für die Personendichte.
Sobald eines der definierten Ereignisse in mehreren aufeinanderfolgenden Bildern detektiert wird, erfolgt eine farbige Markierung des betreffenden Bereichs im Grundriss und das Ereignis wird in eine Event-Liste eingetragen. Auf Wunsch können bestimmte Ereignistypen bei der Anzeige ignoriert oder noch prominenter dargestellt werden.
Warteschlangen
Warteschlangen entstehen häufig an bekannten Orten wie Schleusen, Ständen oder Schaltern. Es wurde ein Verfahren entwickelt, das Warteschlangen in definierten Bereichen detektiert und die Wartedauer schätzt. Zusätzlich wurde ein weiterer Algorithmus entwickelt, mit dem Warteschlangen in unbekannten Gebieten detektiert werden können. Die extrahierte Wartedauer wird für die Navigation verwendet, dort beeinflusst sie die Routenplanung.
Die Warteschlangen werden auf Grundlage des optischen Flusses bestimmt. Es wurden zwei unterschiedliche Algorithmen implementiert. Das eine Verfahren betrachtet Punkte an potentiellen Orten, an denen sich Warteschlangen bilden können. An diesen Punkten wird ein Kalman-Filter auf den optischen Fluss angewendet, das ihn in entgegengesetzter Richtung verfolgt (siehe Abbildung 13). Auf diese Weise lässt sich bestimmen, wie die Warteschlange verläuft. Durch Summation des Flusses entlang des Pfades kann die Wartedauer für diese Schlange bestimmt werden.
Abbildung 13: Ermittlung der Warteschlange und Dauer. Am Punkt im linken Bild wird der optische Fluss in entgegengesetzter Richtung verfolgt.
Es entsteht der Pfad (rechtes Bild), der der Warteschlange entspricht.
Ein anderes Verfahren besteht darin, den optischen Fluss über die Zeit zu akkumulieren und zu mitteln. Auf diese Weise werden im Bild konstante Strukturen wie Warteschlangen gut sichtbar. In Abbildung 14 ist das Verfahren veranschaulicht. Im mittleren Bild sind die Bewegungsgeschwindigkeit und die Bewegungsrichtung über die Helligkeit bzw. die Farbe dargestellt. Die einzelnen Warteschlangen sind gut erkennbar, die Segmentierung ermöglicht eine automatische Bestimmung zusammengehörender Bereiche. Aus der mittleren Geschwindigkeit und der Länge der Warteschlange lässt sich schließlich die Wartedauer schätzen.
Abbildung 14: Automatische Detektion der Warteschlangen. Oben die Szene. In der Mitte sind die mittlere Bewegungsrichtung und die mittlere Bewegungsgeschwindigkeit kodiert.
Unten sind die segmentierten Warteschlangen zu sehen [7].
Navigation
Es wurde eine Smartphone-App entwickelt, die bei der Großveranstaltung eine Navigation ermöglicht. Neben einer Karte des Veranstaltungsorts werden die berechneten Dichteinformationen für die Navigation berücksichtigt. Zusätzlich wurde ein Kommunikationssystem entwickelt, mit dem die Dichtekarten vom Server auf das Smartphone übertragen werden.
Statistische Auswertung
Aus den zu verschiedenen Zeiten und an verschiedenen Orten aufgenommenen Kamerabildern werden sehr viele Informationen extrahiert, die einerseits für die Interpretation der Situation benötigt werden und andererseits für die Nachbereitung der Veranstaltung wertvoll sind. Es wurden einige Algorithmen entwickelt, die die erhobenen Datenmengen analysieren und grafisch aufbereiten. Gerade im zeitlichen Verlauf können Zusammenhänge zwischen bestimmten Ereignissen, Besucherströmen und Standauslastung deutlich gemacht werden. So können für nachfolgende Veranstaltungen Verbesserungen im Veranstaltungskonzept erarbeitet werden.
Im Zuge des Monitorings werden vielfältige Daten erfasst. Aus diesen Daten wurden zunächst geeignete Informationen identifiziert, die für einen Veranstalter in der Nachbereitung der Großveranstaltung von Nutzen sein können. Als Grundlage dienen Dichte-, Strömungs-, und Warteschlangeninformationen sowie erkannte Ereignisse. Diese Daten werden zur Laufzeit gespeichert und können nachträglich ausgewertet werden. Dazu wurde ein Auswertungstool entwickelt, welches die Daten analysiert und optisch aufbereitet. Im Folgenden werden einige Ergebnisse aus einem Beobachtungszeitraum von 11:20 Uhr bis 13 Uhr dargestellt.
In Abbildung 17 ist die durchschnittliche Personendichte auf dem Veranstaltungsgelände abgebildet. In der Darstellung wird deutlich, wie sich die Leute generell auf dem Gelände verteilt haben. In roten Bereichen herrschte eine hohe Dichte, in blauen eine niedrige.
Abbildung 17: Die mittlere Dichte auf dem Veranstaltungsgelände in der projizierten Darstellung.
Die Bereiche, die in Abbildung 18 zu sehen sind, wurden ebenfalls auf Basis der Dichteinformationen markiert. Jedes Mal, wenn die Dichte an einem Bildpunkt einen Grenzwert überschreitet, wird in diesem Bild die Intensität um 1 erhöht. Die roten Bereiche stellen die höchsten Intensitäten dar und enthalten Werte über 6000. D.h. in über 6000 Frames wurde an diesen Punkten der Grenzwert für die Dichte überschritten. So werden Bereiche sichtbar, in denen es sehr häufig eine hohe Dichte gab, die zu Staus führte.
Abbildung 18: Bereiche mit hoher Dichte. Anhand der rötlichen Bereiche lassen sich Staubereiche erkennen. In blauen Bereichen kam es nicht zu einer erhöhten Personendichte.
Für eine intensive Auswertung der Veranstaltung ist die Betrachtung der Ereignisse von Bedeutung. Diese werden zu jedem Zeitpunkt protokolliert. Es lassen sich Bereiche definieren, in denen für jedes Frame die Ereignisse bestimmt werden. In Abbildung 19 sind die Ereignisdiagramme für 11 definierte Bereiche dargestellt. Die blaue Kurve gibt die Anzahl der geschätzten Personen pro Quadratmeter an. Dieser Wert wird über den gesamten Bereich gemittelt. Der bunte Balken kodiert die verschiedenen detektierten Ereignisse. Das Ereignis, das zu dem Zeitpunkt in dem Bereich detektiert wurde, wird an der Stelle in der entsprechenden Farbe markiert. Unten rechts in Abbildung 19 ist eine Legende für die unterschiedlichen Ereignisse eingezeichnet. Die Ereignisdiagramme ermöglichen eine sehr schnelle Erfassung der Vorkommnisse in den Bereichen auch für lange Zeitbereiche.
Abbildung 19: Ereignissdiagramme zeigen den zeitlichen Verlauf der detektierten Ereignisse in 11 definierten Bereichen. Die blaue Kurve stellt die geschätzte Anzahl der Personen pro Quadratmeter dar,
der bunte Balken kodiert die zu dem Zeitpunkt detektierten Ereignisse. Rechts unten befindet sich eine Legende für die Ereignisse.
In Abbildung 20 sind drei Ereignisdiagramme ausgewählt worden, die etwas detaillierter erläutert werden sollen. Im Gegensatz zu den Ereignisdiagrammen in Abbildung 19 stellt die blaue Kurve die geschätzte Anzahl der Besucher im gesamten Bereich dar (also nicht auf den Quadratmeter normiert). Das linke Diagramm zeigt den Bereich des Schleusenausgangs. Zunächst ist - bis auf einige Messearbeiter, die sich schnell durch den Bereich bewegen - alles ruhig. Um 12 Uhr wurde die Messe geöffnet. Von diesem Zeitpunkt an bewegen sich die Menschen mit erhöhter Geschwindigkeit durch den Bereich. Dieses Verhalten lässt sich damit erklären, dass die Besucher länger vor der Schleuse warten mussten, bis sie in den Bereich gelassen werden und dann schnell den Bereich durchqueren, um zur Startnummernausgabe zu gelangen. Das mittlere Ereignisdiagramm zeigt den Bereich vom Eingang bis zum Wartebereich der Schleuse. Nach Öffnung der Messe um 12 Uhr strömen die Besucher zunächst sehr schnell durch den Bereich. In diesem Zeitraum kommt es kurzzeitig zu einer Panikdetektion, was an besonders sensibel eingestellten Parametern für das Ereignis Panik liegt (erhöhte Geschwindigkeit bei höherer Dichte). Die Kriterien wurden erfüllt, da sich die vielen Besucher sehr schnell zu der Startnummernausgabe begeben wollten und es noch keinen Rückstau aus dem Schleusenbereich gab. Anhand der blauen Kurve zeigt sich, wie sich der Bereich sehr schnell füllt. Gegen 12:20 Uhr ist es dann so voll, dass keine schnellen Bewegungen mehr möglich sind, es entsteht eine Stausituation. Im Ereignisdiagram rechts ist der Bereich um einen Notausgang dargestellt. Die blauen Kurve zeigt, dass in diesem Bereich sehr wenige Personen zu sehen sind. Sobald sich mehr als 5 Personen in diesem Bereich befinden, wird das Ereignis "Notausgang blockiert" angezeigt.
Abbildung 20: Drei Ereignisdiagramme zu den Bereichen Schleuse (links), Wartebereich (Mitte) und Notausgang (rechts).
Die Abbildung 21 zeigt die Verteilung der detektierten Ereignisse aller Bereiche in dem betrachteten Zeitraum. Das häufigste Ereignis war Kein Ereignis mit etwa 230.000 Detektionen, gefolgt vom Ereignis Stau mit ca. 100.000 Detektionen. Insgesamt wurden in dem Zeitraum etwa 375.000 Ereignisse detektiert.
Abbildung 21: Häufigkeitsverteilung der detektierten Ereignisse.
In Abbildung 22 werden 2 Diagramme gegenübergestellt, die die mittlere Personendichte für die Bereiche der männlichen und weiblichen Marathonteilnehmer enthalten. Es wird deutlich, dass im Anmeldebereich der Männer ab 12:15 Uhr eine etwa doppelt so hohe Personendichte detektiert wurde als bei den Damen. Der Veranstalter kann diese Informationen für zukünftige Events verwenden und z. B. den Anmeldebereich der Männer vergrößern.
Abbildung 22: Links die mittlere Personendichte im Anmeldebereich für die Marathonteilnehmerinnen, rechts die mittlere Personendichte im Anmeldebereich für die männlichen Marathonteilnehmer.
In Abbildung 23 wird die Entstehung der Warteschlange vor der Schleuse visualisiert. Kurz nach 12 Uhr wird die Schleuse geschlossen, von da an regelt das Sicherheitspersonal den Zustrom der Besucher in den Anmeldebereich. Innerhalb von 5 Minuten entsteht eine etwa 23 Meter lange Warteschlange. Dann wird in regelmäßigen Abständen die Schleuse geöffnet und wieder geschlossen, was im Rückgang und Anwachsen der Warteschlange deutlich wird.
Abbildung 23: Warteschlangenlänge vor der Schleuse.
Quellen:
1. Qing Wen, Chengcheng Jia, Yangquan Yu, Gang Chen, Zhezhou Yu, Chunguang Zhou: People Number Estimation in the Crowded Scenes Using Texture Analysis Based on Gabor Filter. Journal of Computational Information Systems 7: 11 (2011).
2. Hajer Fradi, Xuran Zhao und Jean-Luc Dugelay. Crowd density analysis using subspace learning on local binary pattern. In: IC-ME 2013, IEEE International Workshop on Advances in Auto-mated Multimedia Surveillance for Public Safety, July 15-19, 2013, San Jose, CA, USA, Juli 2013. doi: http://dx.doi.org/10.1109/ICMEW.2013.6618350. url: http://www.eurecom.fr/publication/4002.
3. Skinner, Robert E. Jr.: 75 Years of the Fundamental Diagram for Traffic Flow Theory. Transportation Research Circular, Greenshields Symposium, Number E-C149, June 2011
4. Zach C., Pock, T. and Bischof, H.: A Duality Based Approach for Realtime TV-L1 Optical Flow. In: Ann. Symp. German Association Patt. Recogn.
5. Brox, T., Bruhn A., Papenberg, N. and Weickert, J.: High Accuracy Optical Flow Estimation Based on a Theory for Warping. In: Proc. 8th European Conference on Computer Vision, Springer LNCS 3024, T. Pajdla and J. Matas (Eds.), vol. 4, Prague, Czech Republic, May 2004.
6. Farnebäck, G.: Two-Frame Motion Estimation Based onPolynomial Expansion. In: Image Analysis, Springer Berlin Heidelberg.
7. Müller-Rowold, M.: Optischer Fluss gestützte Bestimmung der Anstehzeit an Warteschlangen. Unveröffentlichte Seminararbeit zum Semesterprojekt EventMAP, Lehrstuhl für Signalverarbeitung und Mustererkennung, Institut für Informatik, Humboldt-Universität zu Berlin.