Skip to content

EEG-based BCI tutorial based on MNE, SciKit-Learn and PyRiemann

Notifications You must be signed in to change notification settings

JGalego/eeg-bci-tutorial

Repository files navigation

Tutorial: Signal Processing and Machine Learning for EEG-based BCI Systems

Build Status

Overview

In this tutorial, we will review some common signal processing and machine learning techniques that have been used in EEG-based brain-computer interface (BCI) systems to translate brain signals into messages and commands.

Image downloaded from http://epscicon.vidyaacademy.ac.in/wp-content/uploads/2017/12/eeg.jpg

Disclaimer

This notebook owes much of its content to the MNE and PyRiemann packages.

Most of the examples were partially inspired by the well-documented and high-quality tutorials available in the official documentations (most of which, by the way, are also available as Jupyter notebooks).

To all the developers who have contributed to these modules:

Running with Docker

Build the image

docker build --rm --no-cache eegbci_tutorial .

Run it

docker run -p 8888:8888 -e NB_UID=$(id -u) eegbci_tutorial

Navigate to http://localhost:8888/?token=TOKEN.

References

Books

  • Bear, M. F., Connors, B. W., & Paradiso, M. A. (2016). Neuroscience: Exploring the brain (4th edition). Wolters Kluwer.
  • Cohen, M. X. (2014). Analyzing neural time series data: Theory and practice. The MIT Press.
  • Graimann, B., Allison, B., & Pfurtscheller, G. (Eds.). (2010). Brain-computer interfaces: Revolutionizing human-computer interaction. Springer.
  • Géron, A. (2019). Hands-on machine learning with Scikit-Learn, Keras, and TensorFlow: Concepts, tools, and techniques to build intelligent systems. O'Reilly.
  • Nam, C. S., Nijholt, A., & Lotte, F. (Eds.). (2018). Brain-computer interfaces handbook: Technological and theoretical advances. Taylor & Francis, CRC Press.
  • Niedermeyer, E., Schomer, D. L., & Lopes da Silva, F. H. (Eds.). (2011). Niedermeyer’s electroencephalography: Basic principles, clinical applications, and related fields (6th edition). Wolters Kluwer, Lippincott Williams & Wilkins.

Packages

  • MNE - Open-source Python software for exploring, visualizing, and analyzing human neurophysiological data: MEG, EEG, sEEG, ECoG, and more
  • SciKit-Learn - Machine Learning in Python
  • Numpy - Fundamental package for scientific computing with Python
  • PyRiemann - a python package for covariance matrices manipulation and classification through riemannian geometry

Sites

  • BNCI Horizon 2020 - The Future of Brain/Neural Computer Interaction: Horizon 2020
  • EDFbrowser - Free, opensource, multiplatform, universal viewer and toolbox intended for, but not limited to, timeseries storage files like EEG, EMG, ECG, BioImpedance, etc.

Blogs

About

EEG-based BCI tutorial based on MNE, SciKit-Learn and PyRiemann

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published