Inspiration

Staying focused is an important skill to maximize learning and success. Everyone learns differently, and tools that might work for somebody might not work for another. There is a need for personalized learning patterns to allow individuals to understand how they are allocating their time and for how long they can stay focused. Brain-imaging technologies can detect neural activity. New, commercially available neuroimaging devices allow for non-invasive, continuous readings from the brain. We propose a software solution to use electroencephalography (EEG), a neuroimaging modality, to detect focus levels and provide personalized learning patterns. This will ultimately improve the learning process for individuals and will improve their success in school and jobs.

What it does

This software solution provides outputted figures corresponding to brain activity while studying. Individuals can record brain activity for a short period of time and compare to their baseline to determine if they are focused or not. Based on results, the individual can then either return to studying or choose to take a break and return when they are more focused.

How we built it

We have compiled an open source software, OpenVibe, to stream and analyze EEG data. We have integrated our software solution in OpenVibe. Once we collected the data, we inputted it into Python to visualize the difference between a baseline focus task (reading in a quiet room) and distracted setting (reading in a full room with multiple people talking). For testing purposes, we used a Unicorn Hybrid Black (EEG system) to collect and stream the data. The Unicorn is a low-cost, commercially available, mobile EEG device that can be integrated with customized software. When focused, the data is greater in amplitude and has increased activity when compared to when distracted (see picture attached). This way, an individual can visualize in real-time if they are focused or not.

Challenges we ran into

We had to understand the best way to pre-process EEG data and perform feature extraction. We decided to use Fast Fourier Transform (FFT) to extract power features from the data so that we could analyze the band waves we were interested in, in real time. We had 8 EEG channels and wanted to average across them. It was tricky to perform averaging across all 8 channels in OpenVibe. It was also challenging to transmit data from OpenVibe to Python. We used Lab-streaming layer (LSL) to transmit data. We also wanted to integrate this on a Raspberry Pi 4 to have an embedded, low-cost and mobile system. There have been a handful of challenges building OpenVibe on a Raspberry Pi 4 because of compatibility issues.

Accomplishments that we're proud of

We built OpenVibe on a Raspberry Pi 4 running Ubuntu 18.04. It was our first time building a source code and we had to go through a lot of troubleshooting. We now know how to process electroencephalography data and extract predicted focus levels. We managed to communicate between OpenVibe and Python.

What we learned

We had to learn a lot about installing drivers and dependencies. This was really helpful especially in the future to work with open-source software and to modify them. We learned how to process electroencephalography data to give us focus levels and stream it to Python. We have learned more about the activity of the brain during work. Related fields that this project could be applied to include education, marketing, and how to best improve human interaction such as teacher-student scenarios.

What's next for Focus

Create a full app that people can install on their devices and use to get personalized learning patterns. Get more data in different scenarios (ex. studying with friends, listening to music, different time of the day and year, etc.). Quantify different levels of focus beyond visualization techniques, and improve real-time feedback to the user.

Built With

+ 9 more
Share this project:

Updates