In recent years, machine learning-based approaches have demonstrated success across various fields, including the medical domain. This project focuses on evaluating different classification models capable of predicting the type of movement executed by a patient based on surface electromyography (sEMG) signals recorded from the patient's forearm. The dataset utilized for this project is the NinaPro dataset DB1, comprising sEMG signals recorded from 27 patients while performing various hand movements.
Below, we outlined instructtions on how to setup the project. This is optional, as the project can be run easily run within your own python environment. However, you might run into some errors due to different package versions etc.
To reproduce all results, this notebook should be run with the correct Python version inside the specified virtual environment to use all packages with the correct version.
We use Poetry for package management and versioning. This project was developed for Python 3.10.13
and Poetry 1.7.1
. We recommend installing Python via pyenv and Poetry via pipx.
pyenv install 3.10.13
Then, install Poetry via pipx
(if not installed yet):
pipx install poetry==1.7.1
The project has a .python-version
in the root directory, which will automatically activate the correct Python version when you enter the project directory. You can check that the correct Python version is used by running python --version
and similarly for poetry running poetry --version
.
Next, you can install all dependencies via Poetry:
poetry install
Finally, run the following to add the virtual environment to Jupyter:
poetry run python -m ipykernel install --user --name=emg-signal-movement-clf
You can check the preprocessing pipeline notebook to see how the data was preprocessed and the classification pipeline notebook to see how the classification was performed. Each notebook is self-contained and explains in detail how the results were obtained.
State-of-the-art models:
NinaPro DB1 information: