53ef95f2fe
plot between their training progress
2.9 KiB
2.9 KiB
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 requires a specific file structure. Se "How to use it"
- Preprocessing is still limited in Signal_prep.py
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. * 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 | Does mapping to data and contains various functions. Among others, this contains wavelet, MFCC, cepstrum and normalization. |
Present_data.py | Contains plot and case functions. Case functions combines many elements from the code and presents some results described. |
Neural_Network_Analysis.py | Contains functions to load, build and execute analysis with Neural Networks. Main functions are load_data_from_json(), build_model(), and main() |
How to use it
- Clone the repo
- Place the data files in the working directory
- Place the data files within the
data
-folder (format:/data/<datatype>/<subject-folder+ID>/<session-folder>/<left/right-CSV-files>
) - Assuming NN analysis:
- Create a
CSV_handler
object - Load data with
load_data(CSV_handler, <datatype>)
- Create
NN_handler
object withCSV_handler
as input - Load MFCC data into the
NN_handler
withstore_mfcc_samples()
- Run
save_json_mfcc()
to save samples in json - Run
Neural_Network_Analysis.py
with desired config
- Create a