Structuring and analytics of EMG data from MYO armbands. Work by IAESTE intern Markus Hoff Skudal, summer 2021.
Go to file
2021-07-08 17:47:41 +02:00
__pycache__ fix: fix indexing of labels in mfcc json 2021-07-07 12:11:46 +02:00
.idea fix: try to implement the NN correctly 2021-07-05 12:43:45 +02:00
.vscode chore: improve code quality 2021-07-06 16:33:35 +02:00
python_speech_features.egg-info fix: add minor changes 2021-06-28 09:59:01 +02:00
.DS_Store feat: add new class DL_data_handler and make sample func 2021-06-30 14:53:44 +02:00
.gitignore feat: clone and import python_speech_features 2021-06-28 10:57:08 +02:00
Handle_emg_data.py chore: add more info to README 2021-07-08 17:47:41 +02:00
mfcc_data.json fix: fix indexing of labels in mfcc json 2021-07-07 12:11:46 +02:00
Neural_Network_Analysis.py feat: get the LSTM running 2021-07-07 15:28:15 +02:00
Present_data.py chore: add more info to README 2021-07-08 17:47:41 +02:00
README.md chore: add more info to README 2021-07-08 17:47:41 +02:00
Signal_prep.py fix: change to right naming conventions 2021-07-02 10:26:05 +02:00
Test_functions.py chore: moved presenting functions to Present_data.py 2021-06-25 16:09:51 +02:00

Analysis of Keystroke EMG data for identification

EMG data handling and Neural Network analysis

Scripts to handle CSV files composed by 2 * 8 EMG sensors(left & right) devided into sessions per subject. The raw data is organised in a CSV_handler object with Handle_emg_data.py. Processing of data can take the further form of:

  • Preprocessing with Signal_prep.py - FFT, MFCC, Wavelet db4
  • Storage for Neural Network analysis with NN_handler(Handle_emg_data.py) - combined EMG DataFrame, combined MFCCs DataFrame
  • Neural Network analysis in Neural_Network_Analysis.py - LSTM NN, etc.

Technologies used

  • Common libs: Numpy, Pandas, Pathlib, Sklearn, Scipy, Matplotlib, Tensorflow, Keras
  • Community libs: Python_speech_features, Pywt

Challanges in the module

  • The CSV handlig is for the moment hard-coded to fit the current project due to a very specific file structure and respective naming convention.
  • Preprocessing is still limited in Signal_prep.py
  • Neural_Network_Analysis.py lacks a more general way to access multiple types of networks

Credits for insporational code

  • Kapre - Keunwoochoi
  • Audio-Classification: seth814
  • DeepLearningForAudioWithPyhton - musikalkemist

Table of Contents

File and classes Description and help functions
Handle_emg_data.py: - Data_container - CSV_handler - NN_handler Handles, manipulates, and stores data for analysis. - Data_container is a class that describes the data for each subject in the experiment. Use init. - CSV_handler takes data from CSV files and places it in Data_container for each subject. Use load_data() to load csv data into data containers and add the containers to the CSV_handler's 'data_container_dict', indexed by subject number. Use get_data() to retrieve specific data. - NN_handler prepares data for further analysis in Neural Networks. This class has storage for this data and/or can save it to a json file.
Signal_prep.py
Present_data.py
Neural_Network_Analysis.py