Code Monkey home page Code Monkey logo

p300-cnnt's Introduction

Convolutional Neural Networks for P300 Detection

This repository evaluates different state-of-the-art CNN arquitectures for P300 detection in EEG signals and compares them in terms of detection performance and model complexity.

Datasets

The evaluation was done on the following datasets:

Requirements

  • Python 3.7
  • Tensorflow 1.14.0
  • NumPy
  • SciPy
  • Pandas
  • matplotlib
  • scikit-learn
  • cudatoolkit 10.0
  • cudnn

You can create a conda environment with all the dependencies using the environment.yml file in this repository.

conda env create -n p300cnn -f environment.yml

CNN Architectures

We evaluate the following state-of-the-art CNN architectures for within-subject and cross-subject P300 detection:

  • CNN1 and CNN3 (as well as slight modifications of them)
    • Cecotti, H., & Graser, A. (2010). Convolutional neural networks for P300 detection with application to brain-computer interfaces. IEEE transactions on pattern analysis and machine intelligence, 33(3), 433-445. [link]
  • EEGNet (@vlawhern's implementation: file src/EEGModels.py)
    • Lawhern, V. J., Solon, A. J., Waytowich, N. R., Gordon, S. M., Hung, C. P., & Lance, B. J. (2018). EEGNet: a compact convolutional neural network for EEG-based brain–computer interfaces. Journal of neural engineering, 15(5), 056013. [link] [preprint]
  • ShallowConvNet and DeepConvNet (@vlawhern's implementation: file src/EEGModels.py)
    • Schirrmeister, R. T., Springenberg, J. T., Fiederer, L. D. J., Glasstetter, M., Eggensperger, K., Tangermann, M., Hutter, F., Burgard, W., & Ball, T. (2017). Deep learning with convolutional neural networks for EEG decoding and visualization. Human brain mapping, 38(11), 5391-5420. [link] [preprint]
  • OCLNN
    • Shan, H., Liu, Y., & Stefanov, T. P. (2018, July). A Simple Convolutional Neural Network for Accurate P300 Detection and Character Spelling in Brain Computer Interface. In Proceedings of the 27th International Joint Conference on Artificial Intelligence, Stockholm, Sweden, 13-19 July 2018, 1604-1610. [link]
  • BN3
    • Liu, M., Wu, W., Gu, Z., Yu, Z., Qi, F., & Li, Y. (2018). Deep learning based on batch normalization for P300 signal detection. Neurocomputing, 275, 288-297. [link]
  • CNN-R
    • Manor, R., & Geva, A. B. (2015) Convolutional neural network for multi-category rapid serial visual presentation BCI. Frontiers in computational neuroscience, 9, 146. [link]

We also propose and evaluate a simple CNN architecture (SepConv1D) (inspired by OCLNN) and a Fully-Connected Neural Network with a single hidden layer with two neurons (FCNN). The details of the architecture and the experimental results are reported in:

  • Alvarado-Gonzalez, A. M., Fuentes-Pineda, G., & Cervantes-Ojeda, J. (2021). A few filters are enough: convolutional neural network for P300 detection. Neurocomputing, 425, 37-52. [link] [preprint]

Results

alt text

Citation

@Article{p300cnnt_2021,
  author = {Montserrat Alvarado-González and Gibran Fuentes-Pineda and Jorge Cervantes-Ojeda},
  title = {A few filters are enough: Convolutional neural network for P300 detection},
  journal = {Neurocomputing},
  volume = {425},
  pages = {37--52},
  year = {2021},
}

p300-cnnt's People

Contributors

amontserratag avatar gibranfp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

p300-cnnt's Issues

Dataset preparation for CNN1 and CNN3

Hi,

I was trying to execute the files related to CNN1 and CNN3 to run and test the approaches using the following files:

  • time_CNN1.py
  • time_CNN3.py
  • subject_specific_CNN1.py

However, the arguments require a NumPy file to be provided to it. Based on the paper, I downloaded the dataset 2 of the 3rd BCI Competition, but it contained a list of matlab files.

I also tried running the matdir2np.py file but it expected a different structure as compared to the actual folder structure.

Is there a step I'm missing? How can I convert the dataset to NumPy files required in the arguments of the program?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.