Freund-Feinderkennung

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Die Zielsetzung war das automatische Einschätzen eines Streams einer Überwachungskamera, ob sich die Personen darauf normal bewegen. Die Überlegung dahinter war, dass Menschen normalerweise mit ihren Extremitäten nahe am Körper laufen. Tun sie das nicht, ist das ungewöhnlich und soll erkannt werden.




Das Video

Bevor man Patch in Angriff genommen werden konnte, musste entsprechendes Videomaterial her. Da es nicht möglich ist eine Kampfszene in einem echtem U-Bahnhof zu drehen, war die erste Idee ein gerendertes Video. Das war allerdings nicht befriedigend, deshalb einmal "normales" Verhalten und einmal wildes herumschlagen in einer Greenbox gedreht und für die Optik das Foto eines U-Bahnhofs als Hintergrund eingefügt. Das Video gibt es hier.


Das Patch

Um die Aufgabe wurde mit Eyesweb gelöst.

Bild des Patches mit Erklärung. Erklärung entspricht Unterpunkt "Funktion"

Funktion: Screenshot wird erstellt und vom Stream abgezogen, damit wird der Hintergrund subtrahiert. Anschließend wird das Bild runtergerechnet und in ein Binärbild verwandelt. Morphologischer Operator (Open) entstört mit Median das Bild. Das Bild wird erheblich verkleinert, anschließend werden mit einem hohen (x:1 und y:4) Erode die nach außen überstehenden Extremitäten abgeschnitten. Danach wird mit Dilate (x:3 und y:4) der übriggebliebene Körper „aufgeblasen“. Die Auflösung wird erhöht, das dadurch entstandene Grau wird mit Threshold vernichtet. Der nun entstandene Körper maskiert das alte Bild. Es bleiben nur noch nach außen gehenden Extremitäten übrig. Von diesem Video wird nun auch die Bewegung gemessen. Es kommen zwei Float Variablen heraus, mit denen man Arbeiten kann. Einmal ist des die gesamte Bewegung auf dem original Bild und dann die wichtige Zahl, die Anzahl der Ungewöhnlichen Bewegungen.

Leider funktioniert dieser letzte Teil nicht wirklich.


Ungewöhnliche Bewegungen die erkannt werden: - Schläge und Tritte, von der Seite aufgenommen

- Schubsen zur Seite, von vorne und hinten aufgenommen

- Personen, die sich am Boden raufen, von der Seite aufgenommen

- Schläge nach unten, bei denen sich der Angreifer nach unten beugt, von der Seite aufgenommen

Ungewöhnliche Bewegungen die nicht erkannt werden: - Tritte nach unten

- Angriffe, bei denen der Angreifer Frontal oder mit dem Rücken zur Kamera steht.




Probleme

In der Realität stößt man auf einige Probleme:

1. Lichtverhältnisse: Die Beleuchtung ändert sich, d.h. die Hintergrundsubtraktion wird schlechter, es kommen Störungen ins Bild, die nicht zuverlässig herausgerechnet werden können.

2. Skalierung: Je nachdem ob die Menschen nah oder entfernt von der Kamera stehen, ändert sich der Bewegungslevel und damit die ausgegebenen Variablen.

3. Winkel: Steht der Angreifer in einem ungünstigen Winkel wird kein Alarm gegeben. Steht eine harmlose Person, die sich gestenreich unterhält seitlich zur Kamera gibt es Alarm.


Fazit

Die Idee Aggression aus Videomaterial computergestützt herauszulesen ist ein Thema an dem sich viele die Zähne ausbeißen. Ziel war es deshalb nicht eine endgültige Lösung zu finden, sondern einen weiteren Ansatz zu finden. Sollte es eines Tages eine Einsatzfähige Lösung geben, so wird diese höchstwahrscheinlich aus vielen kleinen Modulen bestehen, die ein Gesamtergebnis liefern. Die Idee, nur die Arme zu betrachten, kommt ursprünglich aus dem Kampfsport, wo man die Schultern des Gegenübers im Auge behält, da diese der Indikator sind, ob und mit welcher Hand er zuschlagen wird. Da ein Computer nur mit Zahlen arbeitet, dient dieses Patch als Indikator wie stark die Arme, bzw. andere vom Körper gestreckte Extremitäten sich bewegen. Es funktioniert nur aus der Seitenansicht, kann aber als Modul für ein größeres Projekt eingebunden werden.


Links

budick.eu die Seite des Erstellers

Patch