Milestone 4
Milestone 4.1: Optimization
The team selected the NeuroPype API to handle most of the signal processing, decreasing the amount of new code necessary for the deliverable.
The NeuroPype API cleans and parses the EEG signals into an output file, making different signal inputs easier to distinguish, however the group ran into major issues with Neuropype's reliability. Neuropype ended up being used to write to XDF files for brainwave output, and the group was forced to create its own way of processing data for linear regression pipeline.
When outputting the data, the brainwaves and Left/Right markers were output separately when converting to CSV files. By using PyXDF, the team was able to get the markers exported separately, and then linked to the brainwaves by timestamps NeuroPype outputted, allowing the group to manipulate the data.
The team used a 3D array to implement the combination of LSL data in the form of a 2D array, left/right markers, as well as timestamp data. The 3D array was then ran in the team's machine learning training model, which processed the LSL data from previous marked examples. Finally, the model used the team's PyAutoGui mouse movement code to move the mouse left or right accordingly.
The team narrowed down the potential functions of CorText BCI to simply be mouse input, which increases ease of use and allows the user to use the on-screen keyboard in conjunction with the software. While the team ran into some issues with NeuroPype in terms of reliability and specific functions, NeuroPype's LSL streaming to XDF was consistent, which ended up being its main use by the group.
Milestone 4.2: Delivery
The video below demonstrates proof of concept and the working model.
Fig. 1. EEG Data moving the mouse in real time
Milestone 4.3: Management
All members of the group contributed to their assigned roles as well as assisting other members whenever needed. Weekly deadlines for project goals were consistently set and delivered on by the group, with consistent communication between members allowing for progress to be made smoothly.
Group Member Roles:
Victoria Beke - Marketing & PR, Data Collection
Zoe Casten - Data Preprocessing, Data Collection
Janet Hamrani - Neurology Research, Neural Network Research
Christian O'Connell - Python Programming Lead, Neural Network Implementation
Jason Pinga - API Research, Motor Imagery Research
Matthew Vaughan - API Research, Data Compilation and Presentation