AlexanderMelde / Handlungserkennung

Action Recognition 🇩🇪 Erkennung menschlicher Handlungen durch Auswertung der Körperhaltungen von Personen in einem Video mithilfe von Machine Learning und neuronalen Netzen im Rahmen einer Bachelorarbeit.

Home Page:https://melde.net/portfolio/handlungserkennung

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Erkennung menschlicher Handlungen durch Auswertung der Körperhaltungen von Personen in einem Video mithilfe von Machine Learning und neuronalen Netzen

Bachelorarbeit

AutorAlexander Melde (7939560)
BetreuerDr. M. Sieck, EnBW AG
Prof. Dr. M. Babilon, DHBW Stuttgart
Studiengang/KursB. Sc. Angewandte Informatik – Kommunikationsinformatik TINF15K
Titel der ArbeitErkennung menschlicher Handlungen durch Auswertung der Körperhaltungen von Personen in einem Video mithilfe von Machine Learning und neuronalen Netzen
AnlassBachelorarbeit, 3. Studienjahr
Bearbeitungszeitraum11.06.2018 - 31.08.2018
Abgabedatum03.09.2018

Kurzbeschreibung

Dank bedeutender Forschungsergebnisse in den Bereichen der künstlichen Intelligenz und digitalen Bildverarbeitung ist es Computern mithilfe von künstlichen neuronalen Netze möglich, Personen in Videos zu detektieren und deren Körperhaltungen abzuschätzen.

In dieser Arbeit wird geprüft, ob durch Auswertung dieser Körperhaltungen menschliche Handlungen erkannt werden können.

Die selbstständige Klassifikation von Videos oder gar Handlungen in Videos durch einen Computer ist ein noch nicht gelöstes Problem, zu dem noch viel geforscht wird. Um die komplexen Zusammenhänge, Lösungsvorschläge und Implementierungen zu verstehen, werden in dieser Arbeit zunächst einige Grundlagen aus den Bereichen Videoüberwachung, digitale Bildverarbeitung und künstliche Intelligenz erarbeitet. Anschließend werden zahlreiche Ansätze zur Handlungsklassifikation in Videos miteinander verglichen und bewertet.

Damit die künstliche Intelligenz angelernt werden kann, werden darüber hinaus zahlreiche Datensätze mit beschrifteten Handlungen aufgezeigt.

Ausgehend von den Ergebnissen dieser Untersuchung werden anschließend mehrere im Rahmen dieser Arbeit entwickelter Prototypen zur Handlungserkennung vorgestellt. Für einen produktiven Einsatz werden abschließend Erweiterungs- und Optimierungs-Möglichkeiten gezeigt.

In jedem Schritt wurden darüber hinaus Optimierungen hinsichtlich des Anwendungsfall „Überwachung von öffentlichen Plätzen“ geprüft. Durch die Haltungserkennung sollen Gewaltsituationen in Videoüberwachungs-Streams erkannt und Aktionen wie Schläge oder Tritte von normalen Alltagshandlungen unterschieden werden können.

Veröffentlichung

Der im Rahmen der Bachelorarbeit geschriebene Quelltext wurde nach Abschluss des Prüfungsverfahrens unter der GNU v3 Lizenz in diesem GitHub Repository veröffentlicht.

Zur Dokumentation des Codes wurde auch der schriftliche Teil der Bachelorarbeit hier hochgeladen.

Inhalt dieses Repository:

  1. Quellcode zur Bachelorarbeit.
  2. Ordner "Beispiele", der Teile der während der Arbeit generierten Bilder enthält.
  3. Bachelorarbeit als PDF Datei

Video zu den Experimenten (Demo)

YouTube

Installation

  1. Python und Pip installieren
    1. Python 3.6 herunterladen und installieren (beinhaltet pip)
  2. Virtual Environment erstellen mit allen in der Datei requirements.txt genannten Modulen
    1. Das Modul "Virtual Environment" installieren mit pip install virtualenv
    2. Neue virtuelle Umgebung im Projektordner erstellen mit virtualenv venv
    3. Virtuelle Umgebung betreten, indem im Ordner venv/Scripts/ ausgeführt wird:
      1. Unix (Bash): .\activate
      2. Windows (PowerShell): PowerShell.exe -ExecutionPolicy UNRESTRICTED und .\Activate.ps1
    4. Module in virtuelle Umgebung installieren mit pip install -r requirements.txt
  3. Die Bibliothek pafprocess kompilieren
    1. Compiler SWIG installieren
      1. Unix: sudo apt install swig
      2. Windows:
        1. SWIG herunterladen und Installieren Download
        2. Visual C++ Build Tools von Microsoft installieren via Direktlink oder Download-Website besuchen, "Tools für Visual Studio 2017" auswählen und bei "Build Tools für Visual Studio 2017" auf "Herunterladen" drücken
    2. Im Ordner tpe/tf_pose/pafprocess die Befehle swig -python -c++ pafprocess.i und python setup.py build_ext --inplace ausführen.

Schnellstart

Vortrainiertes Modell

Im Ordner pretrained befinden sich drei vortrainierte Modelle, die nach der Installation zum Test der Prototypen genutzt werden können:

  1. Prototyp 1, KTH-Datensatz: python main.py --folder_classification_files="pretrained/classification_files_proto1_kth" --classify_webcam=True
  2. Prototyp 2, KTH-Datensatz: python main.py --folder_classification_files="pretrained/classification_files_proto2_kth" --classify_webcam_asImgs=True
  3. Prototyp 2, zusammengesetzter Datensatz: python main.py --folder_classification_files="pretrained/classification_files_proto2_big" --classify_webcam_asImgs=True

Eigene Klassen & Trainingsdaten

Nach der Installation kann der zweite Prototyp in zwei Schritten mit einer Webcam und eigenen Klassen und Trainingsdaten getestet werden:

  1. Nach Handlungen sortierte Videos in Unterordner von training/input_videos legen, jeweils mindestens 20 Videos im .avi Format z.B. 30 Videos im Ordner training/input_videos/boxing und 25 Videos im Ordner training/input_videos/walking.
    1. z.B. Download des KTH-Datensatzes
    2. z.B. Download des Weizmann-Datensatzes
  2. Prototyp 2 testen mit verkettetem Ablauf python main.py --convertVideosToOneImage=True --retrain=True --train_with_vid_as_img=True --classify_webcam_asImgs=True oder einzeln:
    1. Generierung von Überlagerungen starten mit python main.py --convertVideosToOneImage=True
    2. Das Training des zweiten Prototypen starten mit python main.py --retrain=True --train_with_vid_as_img=True
    3. Anwendung auf Webcam starten mit python main.py --classify_webcam_asImgs=True

Weitere Aufrufe siehe Bachelorarbeit und Hilfe via python main.py -h

Kontakt

E-Mail: alexander@melde.net

About

Action Recognition 🇩🇪 Erkennung menschlicher Handlungen durch Auswertung der Körperhaltungen von Personen in einem Video mithilfe von Machine Learning und neuronalen Netzen im Rahmen einer Bachelorarbeit.

https://melde.net/portfolio/handlungserkennung

License:Other


Languages

Language:Python 62.1%Language:C++ 19.3%Language:Jupyter Notebook 11.2%Language:C 5.6%Language:Shell 1.7%Language:Dockerfile 0.1%Language:CMake 0.0%