Note
Please see the refactor branch, not this one, as the refactor branch is the one currently under development and also much more representative of a future stable version of this package. The main branch is abandoned and currently all features of main are being rewritten in refactor.
This is a project by Alexander Reimer and Matteo Friedrich.
We are trying to create an open-source interface for recognizing ERPs of the human brain, for usage in brain–computer interfaces (BCIs). It is being developed with simplicity and ease of use in mind.
We hope to make peoples lives easier and give beginners like ourselves a better chance to develop their own BCIs.
We're just at the beginnings ourselves, however, and also want to learn and grow through this project. Any help and advice is appreciated!
-
Clone this GitHub Repository:
git clone https://github.com/AR102/Interpreting-EEG-with-AI
-
Create the file config.jl in the folder src. (3.
pip install matplotlib
) To update, usegit pull
.
- Start Julia in the directory the/path/to/Interpreting-EEG-with-AI/src
- Use
]
to enter the package manageractivate .
instantiate
to download necessary packages
- Exit with Backspace
include("filename")
to execute
The way this program is made, it should be able to run by default. So the first thing you should do is execute train.jl and check if any errors occur.
This file is responsible for training the neural network. The files gather_data.jl and main.jl are responsible for collecting your own training/test data and using the BCI live, respectively. However, they aren't finished yet.
If there aren't any errors or problems, you can start customizing the program!
You can put your own configuration in the config.jl file you created during the installation.
You can look at the default parameters in default_config.jl.
Some examples you could put into your config file:
# Decrease number of available EEG channels to 8
NUM_CHANNELS = 8
# Increase learning rate to 0.002
LEARNING_RATE = 0.002
You can also create multiple config files and switch between them by replacing include("config.jl")
with include("config2.jl")
or whatever you named the file.
The detailed documentation of all parameters can be found here.