SkillAgentSearch skills...

EGCN

No description available

Install / Use

/learn @bruceyo/EGCN
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Ensemble-based Graph Convolutional Networks (EGCN)

This repository holds the codebase, dataset and models for the paper: EGCN: An Ensemble-based Learning Framework for Exploring Effective Skeleton-based Rehabilitation Exercise Assessment Bruce X.B. Yu, Yan Liu, Xiang Zhang, Gong Chen, Keith C.C. Chan, IJCAI 2022

  • Advanced version EGCN++ and EHE Dataset are available at EGCN++.

Introduction

Rehabilitation exercise aims to restore physical functions from injury. With the release of motion sensors like Kinect, skeleton-based rehabilitation assessment attracts increasing research interest in computer vision. Existing attempts on skeleton-based rehabilitation exercise assessment usually rely on geometric features or statistical methods, which is a lack of effective skeleton data representation methods. Usually, skeleton data could be collected with sensors like Kinect or motion captures that provide two groups of features (i.e., position and orientation features). Graph Convolutional Network (GCN) has achieved encouraging performance for skeleton-based action recognition. However, it might not be able to fully make use of different features of the skeleton data. To advance the prior work, we propose an Ensemble-based GCN (EGCN) learning framework for rehabilitation exercise assessment.

<div align="center"> <img src="resource/ensemble_framework.png"> </div>

Visulization of Position and Orientation Features of Skeleton Joints

EGCN is able to make use of the position and angle features of the skeleton data for exercise evaluation purpose. Below figures show the visulized views of the skeleton features from KIMORE and UI-PRMD datasets. The first row of below figures is 3d position features, and the second row is the angle features (a.k.a. orientation features).

<table style="width:100%; table-layout:fixed;"> <tr> <td><img width="250px" src="resource/samples/pos_kimore.gif"></td> <td><img width="250px" src="resource/samples/pos_uiprmd_kinect.gif"></td> <td><img width="250px" src="resource/samples/pos_uiprmd_vicon.gif"></td> </tr> <tr></tr> <tr> <td><img width="250px" src="resource/samples/ang_kimore.gif"></td> <td><img width="250px" src="resource/samples/ang_uiprmd_kinect.gif"></td> <td><img width="250px" src="resource/samples/ang_uiprmd_vicon.gif"></td> </tr> <tr> <td style="text-align:center"><font size="1">Es5 in KIMORE (Kinect v2)<font></td> <td style="text-align:center"><font size="1">E1 in UI-PRMD (Kinect v2)<font></td> <td style="text-align:center"><font size="1">E1 in UI-PRMD (Vicon)<font></td> </tr> </table>

Prerequisites

Our codebase is based on Python3 (>=3.5). There are a few dependencies to run the code. The major libraries we depend are

  • PyTorch (Release version 0.4.0)
  • Other Python libraries can be installed by pip install -r requirements.txt

Installation

cd torchlight; python setup.py install; cd ..

Data Preparation

We experimented on two skeleton-based action evaluation datasts: UI-PRMD and KIMORE.

UI-PRMD

UI-PRMD is a data set of movements related to common exercises performed by patients in physical therapy and rehabilitation programs. The data set consists of 10 rehabilitation movements. A sample of 10 healthy individuals repeated each movement 10 times in front of two sensory systems for motion capturing: a Vicon optical tracker, and a Kinect camera. The data is presented as positions and angles of the body joints in the skeletal models provided by the Vicon and Kinect mocap systems. We use the consistent exercise repetitions in the Reduced Dataset (174M), which is the same as the prior work. The dataset in our experimental format could be downloaded from Google Drive and Baidu Wangpan (code:1234).

After uncompressing, put the data into folder ./data/UI_PRMD, rebuild the database by this command:

sh ./tools/gen/ui_prmd_gendata_all.sh

KIMORE

For the KIMORE dataset, we perform manul segmentation on based on exercise specific features. Below are depth views of the exercises in KIMORE. Es2-4 are segmented as the left and right directions.

<table style="width:100%; table-layout:fixed;"> <tr> <td><img width="250px" src="resource/samples/Es1.gif"></td> <td><img width="250px" src="resource/samples/Es2_L.gif"></td> <td><img width="250px" src="resource/samples/Es3_L.gif"></td> <td><img width="250px" src="resource/samples/Es4_L.gif"></td> </tr> <tr> <td><font size="1">KIMORE Es1<font></td> <td><font size="1">KIMORE Es2(L)<font></td> <td><font size="1">KIMORE Es3(L)<font></td> <td><font size="1">KIMORE Es4(L)<font></td> </tr> <tr> <td><img width="250px" src="resource/samples/Es2_R.gif"></td> <td><img width="250px" src="resource/samples/Es3_R.gif"></td> <td><img width="250px" src="resource/samples/Es4_R.gif"></td> <td><img width="250px" src="resource/samples/Es5.gif"></td> </tr> <tr> <td><font size="1">KIMORE Es2(R)<font></td> <td><font size="1">KIMORE Es3(R)<font></td> <td><font size="1">KIMORE Es4(R)<font></td> <td><font size="1">KIMORE Es5<font></td> </tr> </table>

KIMORE can be downloaded from their website. The segmented skeleton data could be downloaded from Google Drive and Baidu Wangpan (code:1234). After that, this command should be used to build the database for training or evaluation: After uncompressing, put the data into folder ./data/KiMoRe, then rebuild the database by this command:

sh ./tools/gen/kimore_gendata_all.sh

Test the Trained Results

We provided the trained results of our EGCN. The results are in the folder work_dir To test the trained results of UI-PRMD, run

python ./tools/result/ui_prmd_folds_statistics.py

To test the trained results of KIMORE, run

python ./tools/result/kimore_folds_statistics.py

Training

To train different ensemble strategies of EGCN for KIMORE, run

sh train_kimore_cv.sh

To train different ensemble strategies of EGCN for UI-PRMD, run

sh train_ui_prmd_cv.sh

Acknowledgements

This repo is based on

Thanks to the original authors for their work!

Contact

For any question, feel free to contact

Bruce Yu: b r u c e x b y u AT g m a i l . c o m (remove space)
View on GitHub
GitHub Stars21
CategoryDevelopment
Updated1mo ago
Forks5

Languages

Python

Security Score

85/100

Audited on Mar 9, 2026

No findings