a-framework-for-anomaly-identification-applied-on-fall-detection

Reference: https://github.com/yvesmendes/A-Framework-for-Anomaly-Identification-Applied-on-Fall-Detection/blob/main/pre-proccess.py

https://github.com/vvvvvvn/a-framework-for-anomaly-identification-applied-on-fall-detection

Science Score: 31.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Reference: https://github.com/yvesmendes/A-Framework-for-Anomaly-Identification-Applied-on-Fall-Detection/blob/main/pre-proccess.py

Basic Info
  • Host: GitHub
  • Owner: vvvvvvn
  • Language: Python
  • Default Branch: main
  • Size: 23.5 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme Citation

README-old.md

A Framework for Anomaly Identification Applied on Fall Detection

Abstract:

Automatic systems to monitor people and subsequently improve people’s lives have been emerging in the last few years, and currently, they are capable of identifying many activities of daily living (ADLs). An important field of research in this context is the monitoring of health risks and the identification of falls. It is estimated that every year, one in three persons older than 65 years will fall, and fall events are associated with high mortality rates among the elderly. We propose an anomaly identification framework to detect falls, which incorporates a spatial-temporal convolutional graph network (ST-GCN) as a feature extractor and uses an encoder process to reconstruct ADLs and identify falls as anomalies. As the publicly available fall datasets are few and generally unbalanced, training a reliable model using approaches that need explicit labeling is challenging. Thus, a focus on learning without external supervision is desirable. Treating a fall as an exception of ADLs allows us to recognize falls as anomalies without explicit labels. Given its modular architecture, our framework can robustly represent visual information and use the encoder’s reconstruction error to identify falls as anomalies. We assess our framework’s ability to recognize falls by training it with only ADLs. We perform three types of experiments: single dataset training and evaluation that consists of separate 90% of the data to train the model 5% to adjust the model, and the rest to the test. A joint dataset experiment, where we combine two datasets to increase the number of samples our model is trained on, and a cross-dataset evaluation, where we train on one dataset and evaluate using another one. Besides presenting state-of-the-art results on our experiments, particularly on the cross-dataset one, the model also presents a low number of false events, which makes it an ideal candidate for real-world application.

Model:

Our framework’s primary purpose is to identify falls without the need for previous knowledge of these events. In this case, we have chosen to use an encoder model capable of identifying anomalies based on reconstruction error. As the public datasets have only a few samples of falls, we decided to use a pre-trained ST-GCN in a high-dimensional dataset as a feature extractor.

Image of the model

The first step of our framework is to capture a frameset of a video using an RGB camera. Then the entire frameset is used as input for the ST-GCN model with OpenPose. We normalize the data of the middle layer of the ST-GCN model. This step completes our framework’s pre-processing phase. In the next phase, our framework tries to encode/decode the resulting data. So, we calculate the Mean-Squared Error (MSE), and the value obtained is compared with a threshold. If the calculated value is greater than the pre-defined threshold, an anomaly is identified.

See all details here

Pre-requisites

All requirements are listed in the requirements.txt file. For the pre-process new datasets, you need to install the OpenPose and configure the directory in the processor/demofalldet.py file. as the following:

Image of openPose path

You need to install too the ST-GCN model, we have used the following version of the ST-GCN model here.

Citing:

@ARTICLE{ 9439497, author={Galvão, Yves M. and Portela, Letícia and Ferreira, Janderson and Barros, Pablo and De Araújo Fagundes, Oberta Andrade and Fernandes, Bruno J. T.}, journal={IEEE Access}, title={A Framework for Anomaly Identification Applied on Fall Detection}, year={2021}, volume={9}, number={}, pages={77264-77274}, doi={10.1109/ACCESS.2021.3083064} }

Owner

  • Name: 樊紹萱
  • Login: vvvvvvn
  • Kind: user

Citation (CITATION.bib)

@ARTICLE{
  9439497,  
  author={Galvão, Yves M. and Portela, Letícia and Ferreira, Janderson and Barros, Pablo and De Araújo Fagundes, Oberta Andrade and Fernandes, Bruno J. T.},
  journal={IEEE Access},
  title={A Framework for Anomaly Identification Applied on Fall Detection},
  year={2021},
  volume={9},
  number={},
  pages={77264-77274},
  doi={10.1109/ACCESS.2021.3083064}
}

GitHub Events

Total
Last Year

Dependencies

requirements-old.txt pypi
  • Keras ==2.3.0
  • PyYAML ==5.4.1
  • argparse ==1.4.0
  • h5py ==3.1.0
  • matplotlib ==3.3.4
  • numpy ==1.19.5
  • opencv-python ==4.5.2.54
  • scikit-learn ==0.24.2
  • scikit-video ==1.1.11
  • scipy ==1.5.4
  • setuptools ==57.0.0
  • tensorflow-gpu ==1.14.0
  • torch ==1.9.0
requirements.txt pypi
  • Babel ==2.14.0
  • Jinja2 ==3.1.2
  • MarkupSafe ==2.1.3
  • PyYAML ==6.0.1
  • Pygments ==2.17.2
  • QtPy ==2.4.1
  • Send2Trash ==1.8.2
  • addict ==2.4.0
  • anyio ==4.2.0
  • argon2-cffi ==23.1.0
  • argon2-cffi-bindings ==21.2.0
  • arrow ==1.3.0
  • asttokens ==2.4.1
  • async-lru ==2.0.4
  • attrs ==23.2.0
  • beautifulsoup4 ==4.12.2
  • bleach ==6.1.0
  • certifi ==2023.11.17
  • cffi ==1.16.0
  • charset-normalizer ==3.3.2
  • colorama ==0.4.6
  • colorlog ==6.8.0
  • comm ==0.2.1
  • debugpy ==1.8.0
  • decorator ==5.1.1
  • defusedxml ==0.7.1
  • exceptiongroup ==1.2.0
  • executing ==2.0.1
  • fastjsonschema ==2.19.1
  • filelock ==3.13.1
  • fqdn ==1.5.1
  • fsspec ==2023.12.2
  • h5py ==3.10.0
  • idna ==3.6
  • imageio ==2.33.1
  • ipykernel ==6.28.0
  • ipython ==8.19.0
  • ipywidgets ==8.1.1
  • isoduration ==20.11.0
  • jedi ==0.19.1
  • json5 ==0.9.14
  • jsonpointer ==2.4
  • jsonschema ==4.20.0
  • jsonschema-specifications ==2023.12.1
  • jupyter ==1.0.0
  • jupyter-console ==6.6.3
  • jupyter-events ==0.9.0
  • jupyter-lsp ==2.2.1
  • jupyter_client ==8.6.0
  • jupyter_core ==5.6.1
  • jupyter_server ==2.12.1
  • jupyter_server_terminals ==0.5.1
  • jupyterlab ==4.0.10
  • jupyterlab-widgets ==3.0.9
  • jupyterlab_pygments ==0.3.0
  • jupyterlab_server ==2.25.2
  • lazy_loader ==0.3
  • matplotlib-inline ==0.1.6
  • mistune ==3.0.2
  • mpmath ==1.3.0
  • munch ==4.0.0
  • nbclient ==0.9.0
  • nbconvert ==7.14.0
  • nbformat ==5.9.2
  • nest-asyncio ==1.5.8
  • networkx ==3.2.1
  • notebook ==7.0.6
  • notebook_shim ==0.2.3
  • numpy ==1.23.5
  • nvidia-cublas-cu12 ==12.1.3.1
  • nvidia-cuda-cupti-cu12 ==12.1.105
  • nvidia-cuda-nvrtc-cu12 ==12.1.105
  • nvidia-cuda-runtime-cu12 ==12.1.105
  • nvidia-cudnn-cu12 ==8.9.2.26
  • nvidia-cufft-cu12 ==11.0.2.54
  • nvidia-curand-cu12 ==10.3.2.106
  • nvidia-cusolver-cu12 ==11.4.5.107
  • nvidia-cusparse-cu12 ==12.1.0.106
  • nvidia-nccl-cu12 ==2.18.1
  • nvidia-nvjitlink-cu12 ==12.3.101
  • nvidia-nvtx-cu12 ==12.1.105
  • opencv-python ==4.9.0.80
  • overrides ==7.4.0
  • packaging ==23.2
  • pandocfilters ==1.5.0
  • parso ==0.8.3
  • pexpect ==4.9.0
  • pillow ==10.2.0
  • platformdirs ==4.1.0
  • prometheus-client ==0.19.0
  • prompt-toolkit ==3.0.43
  • psutil ==5.9.7
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • pycparser ==2.21
  • python-dateutil ==2.8.2
  • python-json-logger ==2.0.7
  • pyzmq ==25.1.2
  • qqdm ==0.0.7
  • qtconsole ==5.5.1
  • readchar ==4.0.5
  • referencing ==0.32.0
  • requests ==2.31.0
  • rfc3339-validator ==0.1.4
  • rfc3986-validator ==0.1.1
  • rpds-py ==0.16.2
  • scikit-image ==0.22.0
  • scikit-video ==1.1.11
  • scipy ==1.11.4
  • six ==1.16.0
  • sniffio ==1.3.0
  • soupsieve ==2.5
  • stack-data ==0.6.3
  • sympy ==1.12
  • terminado ==0.18.0
  • tifffile ==2023.12.9
  • tinycss2 ==1.2.1
  • tomli ==2.0.1
  • torch ==2.1.2
  • torchaudio ==2.1.2
  • torchlight ==1.0
  • torchvision ==0.16.2
  • tornado ==6.4
  • tqdm ==4.66.1
  • traitlets ==5.14.1
  • triton ==2.1.0
  • types-python-dateutil ==2.8.19.14
  • typing_extensions ==4.9.0
  • uri-template ==1.3.0
  • urllib3 ==2.1.0
  • wcwidth ==0.2.12
  • webcolors ==1.13
  • webencodings ==0.5.1
  • websocket-client ==1.7.0
  • widgetsnbextension ==4.0.9
torchlight/setup.py pypi