DuyNguDao / Identity-Action

The combination of face identification and action recognition for fall detection (ICT Journal)
https://jst-ud.vn/jst-ud/article/view/8210/5766
43 stars 10 forks source link
arcface cnn deep-learning face-detection face-recognition lstm pytorch retinaface sort st-gcn strongsort yolo yolo-pose yolo5face yolov5 yolov7

The combination of face identification and action recognition for fall detection

Introduction

Falls are a very common unexpected accident in the elderly that results in serious injuries such as broken bones, and head injury. Detecting falls and taking fall patients to the emergency room on time is very important. In this project, we propose a method combining face and action recognition for fall detection. Specifically, we identify seven basic actions in elderly daily life based on skeleton data detected using the YOLOv7-Pose model. Two deep models, Spatial-Temporal Graph Convolutional Network (ST-GCN) and Long Short-Term Memory (LSTM), are employed for action recognition on the skeleton data. The experimental results on our dataset show that the ST-GCN model achieved an accuracy of 90% higher than the LSTM model by 7%.

video demo

https://user-images.githubusercontent.com/87271954/204276637-f5d343de-9b19-43e4-a34b-5ffb7b696d9a.mp4

System Diagram

Dev

Member:
 - DAO DUY NGU
 - LE VAN THIEN
Instructor: TRAN THI MINH HANH

Usage

Install package

Step 1: Download and setting anaconda environment

https://www.anaconda.com/download/success

Step 2: Open Anaconda Prompt

Anaconda Prompt on Window

Step 3: Change directory to project

cd Identity-Action

Step 4: Setup python environment (GPU is required)

setup_environment_gpu.bat

Remove python environment

remove_env.bat

Download

Model yolov7 pose state-dict: (Note: the model download fee is 20$ through PayPal. Please send information to my email to download. - [ddngu0110@gmail.com]())

yolov7_w6_pose

Quick start

Start and config URL

pip uninstall opencv-python-headless
pip install opencv-python==4.5.5.64
python run_video.py

Start with the terminal

pip uninstall opencv-python-headless
pip install opencv-python==4.5.5.64
python detect_video.py --fn <url if is video or 0>

Run App

Step 1: Open Anaconda Prompt

Anaconda Prompt on Window

Step 2: Change directory to project

cd Identity-Action

Step 3: Run app

run_app.bat

Datasets and result model training

Dataset human action

Human action

Dataset Face Detection

Face detection

Dataset Face Recognition

Face recognition

Result face recognition

Diagram

Face detection

FDDB DATA

WIDERFACE Val

Result compare: Accuracy, Precision, Recall, Time processing

Config Computer:

Face landmark loss

Face recognition

Backbone compare:

Methods compare: LOOCV (Leave-One-Out Cross-Validation), Time processing with FaceScrub data

Diagram Accuracy Thresh

Result human action pose

Diagram

Backbone

LSTM

ST-GCN

Two Stream ST-GCN

Confusion matrix

Methods compare

Accuracy, Precision, Recall, F1-score, Time processing

Config Computer:

Compare ST-GCN + YOLOv7-Pose and ST-GCN + YOLOv3 + Alphapose

Config Computer:

Training

Human action