https://github.com/krishnaura45/neuroload
Mental Workload Assessment using GSR
https://github.com/krishnaura45/neuroload
deep-learning gsr mental-health research-project signal-processing stress transfer-learning
Last synced: about 2 months ago
JSON representation
Mental Workload Assessment using GSR
- Host: GitHub
- URL: https://github.com/krishnaura45/neuroload
- Owner: krishnaura45
- Created: 2024-01-16T14:07:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-13T05:43:20.000Z (10 months ago)
- Last Synced: 2025-04-14T22:04:47.930Z (about 2 months ago)
- Topics: deep-learning, gsr, mental-health, research-project, signal-processing, stress, transfer-learning
- Language: Jupyter Notebook
- Homepage:
- Size: 7.75 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Neuro Load : Mental Workload Assessment using GSR
**Project Duration**: May 2023 - June 2023
Neuro Load is a research project that introduces a novel approach to categorizing mental workload using Galvanic Skin Response (GSR). The project focuses on leveraging advanced signal processing techniques and machine learning to assess mental workload effectively.
## Project Overview
Mental workload is a critical factor in understanding cognitive processes, particularly in environments where optimal performance is essential. This project aimed to provide a new method for categorizing mental workload through the analysis of GSR signals.
## Technologies and Techniques Explored
- **Python**: The project was implemented in Python, taking advantage of its robust libraries for signal processing and machine learning.
- **Chirp Z Transform (CZT)**: Used for frequency analysis of the GSR signals, providing high-resolution spectral analysis.
- **Continuous Wavelet Transform (CWT)**: Applied for time-frequency analysis, enabling the identification of transient features in the GSR signals.
- **Transfer Learning**: Employed to enhance the model's ability to generalize across different datasets and improve the accuracy of mental workload classification.## Key Features
### 1. Signal Processing
- **Feature Engineering**: Extracted meaningful features from the GSR signals using CZT and CWT to capture both frequency and time-domain characteristics.
- **Data Preprocessing**: Applied various signal processing techniques to clean and normalize the GSR data before analysis.### 2. Machine Learning
- **Model Development**: Developed models using transfer learning techniques to classify mental workload into different categories.
- **Performance Evaluation**: Assessed the models using metrics such as accuracy, precision, and recall to ensure robust performance.### 3. Research Contribution
- **Novel Approach**: Introduced a new method for mental workload assessment that combines advanced signal processing with machine learning.
- **Potential Applications**: The findings from this research can be applied in fields like cognitive neuroscience, human-computer interaction, and occupational health.## Installation
To set up the project on your local machine, follow these steps:
1. **Clone the repository**:
```sh
git clone https://github.com/krishnaura45/NeuroLoad.git
cd NeuroLoad
```2. **Install required dependencies**:
```sh
pip install -r requirements.txt
```3. **Run the Jupyter Notebooks**:
- Start by exploring the feature engineering notebook (`nl_part1_feature_engg.ipynb`).
- Continue with the transfer learning notebook (`nlpart2_transfer_learning.ipynb`).## Usage
1. **Feature Engineering**:
- Load the GSR dataset.
- Apply CWT to extract features.
- Visualize the signal transformations.2. **Transfer Learning**:
- Train the model using preprocessed features.
- Fine-tune the model using transfer learning.
- Evaluate the model's performance on test data.## Example
Here's a snippet to illustrate how to apply CZT on GSR data:
```python
import numpy as np
from scipy.signal import chirp, find_peaks, peak_widths# Example GSR data
gsr_signal = np.array([your_signal_data_here])# Apply Chirp Z Transform
czt_signal = chirp(gsr_signal, f0=0.1, f1=1.0, t1=10, method='linear')
```## Contributing
We welcome contributions to enhance Neuro Load. Please follow these steps to contribute:
1) Fork the repository.
2) Create a new branch: git checkout -b feature/your-feature-name.
3) Make your changes and commit them: git commit -m 'Add some feature'.
4) Push to the branch: git push origin feature/your-feature-name.
5) Open a pull request.### REFERENCES
1) https://pubmed.ncbi.nlm.nih.gov/22778631/
2) https://ieeexplore.ieee.org/document/5663259
3) https://www.researchgate.net/publication/221532890
4) https://ieee-dataport.org/open-access/maus
5) https://pub.towardsai.net/feature-scaling
6) https://www.kaggle.com/code/samsonlo/resnet-50
7) https://arxiv.org/pdf/1611.06455.pdf
8) https://github.com/nachi-hebbar/TL-ResNet
9) https://github.com/codebasics/deep-learning-keras-tf-tutorial