Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drowsiness detection using EEG signals using DL #784

Closed
KamakshiOjha opened this issue Jun 11, 2024 · 6 comments · Fixed by #790
Closed

Drowsiness detection using EEG signals using DL #784

KamakshiOjha opened this issue Jun 11, 2024 · 6 comments · Fixed by #790
Assignees
Labels
gssoc Girlscript Summer of Code 2024 level 2 Level 2 for GSSOC Status: Assigned Assigned issue.

Comments

@KamakshiOjha
Copy link
Contributor

Deep Learning Simplified Repository (Proposing new issue)

🔴 Project Title : Drowsiness Detection Using EEG Signals

🔴 Aim : To develop a deep learning model to detect drowsiness from EEG signals using various algorithms and compare their performance to identify the best-fitted algorithm based on accuracy scores.

🔴 Dataset : https://figshare.com/articles/dataset/EEG_driver_drowsiness_dataset/14273687

🔴 Approach :

  1. Exploratory Data Analysis (EDA):

    • Analyze and preprocess the EEG dataset.
    • Visualize EEG signals and class distributions.
  2. Model Development:

    • Implement the provided deep learning model using TensorFlow and Keras.
    • Develop and implement three additional models:
      1. Convolutional Neural Network (CNN).
  3. Model Training and Evaluation:

    • Train each model on the EEG dataset.
    • Evaluate models using accuracy, precision, recall, and F1-score.
    • Compare performances to identify the best model.
  4. Visualization and Conclusion:

    • Visualize training and validation metrics.
    • Provide insights and conclusions based on model comparisons.

📍 Follow the Guidelines to Contribute in the Project :

  • You need to create a separate folder named as the Project Title.
  • Inside that folder, there will be four main components.
    • Images - To store the required images.
    • Dataset - To store the dataset or, information/source about the dataset.
    • Model - To store the machine learning model you've created using the dataset.
    • requirements.txt - This file will contain the required packages/libraries to run the project in other machines.
  • Inside the Model folder, the README.md file must be filled up properly, with proper visualizations and conclusions.

🔴🟡 Points to Note :

  • The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
  • "Issue Title" and "PR Title should be the same. Include issue number along with it.
  • Follow Contributing Guidelines & Code of Conduct before start Contributing.

To be Mentioned while taking the issue :


Happy Contributing 🚀

All the best. Enjoy your open source journey ahead. 😎

Copy link

Thank you for creating this issue! We'll look into it as soon as possible. Your contributions are highly appreciated! 😊

@abhisheks008
Copy link
Owner

What are the CNN architectures you are planning to use here?
Apart from CNN what are the models you are planning to implement for this EEG dataset?

@KamakshiOjha

@KamakshiOjha
Copy link
Contributor Author

KamakshiOjha commented Jun 12, 2024

Input Layer:

  • Input Shape: (30, 128, 1)

Convolutional Layers:

  • Branch 1:

    • Conv2D with 16 filters, kernel size (1, 3), ReLU activation
    • Conv2D with 32 filters, kernel size (1, 3), ReLU activation
    • Conv2D with 64 filters, kernel size (1, 3), ReLU activation
    • cbam_block applied to the output
  • Branch 2:

    • Conv2D with 16 filters, kernel size (1, 5), ReLU activation
    • Conv2D with 32 filters, kernel size (1, 5), ReLU activation
    • Conv2D with 64 filters, kernel size (1, 5), ReLU activation
    • cbam_block applied to the output
  • Branch 3:

    • Conv2D with 16 filters, kernel size (1, 7), ReLU activation
    • Conv2D with 32 filters, kernel size (1, 7), ReLU activation
    • Conv2D with 64 filters, kernel size (1, 7), ReLU activation
    • cbam_block applied to the output

Combined Branch:

  • The outputs from the branches are combined using an Add layer.
  • Further Convolutional Layers:
    • Conv2D with 64 filters, kernel size (1, 3), ReLU activation
    • Conv2D with 128 filters, kernel size (1, 3), ReLU activation
    • Conv2D with 128 filters, kernel size (1, 3), ReLU activation

Global Pooling and Fully Connected Layers:

  • GlobalAveragePooling2D applied to the last convolutional layer.
  • Fully connected (Dense) layers:
    • Dense with 512 units, ELU activation
    • Dense with 256 units, ELU activation
    • Dense with 128 units, ELU activation
    • Dense with 32 units, ELU activation
    • Output Dense with 2 units, Softmax activation (for classification)

@KamakshiOjha
Copy link
Contributor Author

Since my dataset consists of EEG signals, I've experimented with various CNN architectures to find the best results. Additionally, I've incorporated an attention mechanism into my model to enhance its performance.

@abhisheks008
Copy link
Owner

Input Layer:

  • Input Shape: (30, 128, 1)

Convolutional Layers:

  • Branch 1:

    • Conv2D with 16 filters, kernel size (1, 3), ReLU activation
    • Conv2D with 32 filters, kernel size (1, 3), ReLU activation
    • Conv2D with 64 filters, kernel size (1, 3), ReLU activation
    • cbam_block applied to the output
  • Branch 2:

    • Conv2D with 16 filters, kernel size (1, 5), ReLU activation
    • Conv2D with 32 filters, kernel size (1, 5), ReLU activation
    • Conv2D with 64 filters, kernel size (1, 5), ReLU activation
    • cbam_block applied to the output
  • Branch 3:

    • Conv2D with 16 filters, kernel size (1, 7), ReLU activation
    • Conv2D with 32 filters, kernel size (1, 7), ReLU activation
    • Conv2D with 64 filters, kernel size (1, 7), ReLU activation
    • cbam_block applied to the output

Combined Branch:

  • The outputs from the branches are combined using an Add layer.

  • Further Convolutional Layers:

    • Conv2D with 64 filters, kernel size (1, 3), ReLU activation
    • Conv2D with 128 filters, kernel size (1, 3), ReLU activation
    • Conv2D with 128 filters, kernel size (1, 3), ReLU activation

Global Pooling and Fully Connected Layers:

  • GlobalAveragePooling2D applied to the last convolutional layer.

  • Fully connected (Dense) layers:

    • Dense with 512 units, ELU activation
    • Dense with 256 units, ELU activation
    • Dense with 128 units, ELU activation
    • Dense with 32 units, ELU activation
    • Output Dense with 2 units, Softmax activation (for classification)

Cool. Go ahead with this approach.

Assigned @KamakshiOjha

@abhisheks008 abhisheks008 added Status: Assigned Assigned issue. level 2 Level 2 for GSSOC gssoc Girlscript Summer of Code 2024 labels Jun 12, 2024
Copy link

Hello @KamakshiOjha! Your issue #784 has been closed. Thank you for your contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gssoc Girlscript Summer of Code 2024 level 2 Level 2 for GSSOC Status: Assigned Assigned issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants