The objectives of our end-to-end system are the following:
Connect our low-cost EEG headset (Mindwave Mobile 2 from NeuroSky) to the user’s laptop through Bluetooth.
Collect EEG data from the headset with the click of a button on the web application.
Train a machine learning model to classify positive and negative emotions from EEG data as accurate as possible.
Use the trained model to predict user’s emotions based on collected data.
Provide the user visualizations of the results, as well as history of all prediction results collected from the user.
Provide entertainment recommendation to the user based on emotion.
The technical challenges we faced include the following:
Training data collection: since we need correctly labeled EEG data to train our machine learning model, the data has to be collected from multiple participants in a controlled environment with no distraction. The participants also need to provide self-assessment on how positive/negative their emotions are during the data collection process.
Machine learning model: classifying EEG data is not an easy task due to the noise present in the brainwave and the randomness of the participants emotions during data collection, so we need to use various techniques to make our machine learning models as accurate as possible.
Web application: the web application we develop needs to have multiple features including starting data collection from the headset, display graphs of the user’s brainwave data measured by the sensor, and retrieve emotion classification results from a remote database to display graphs of the user’s historical data.
Problem Formulation
To fully achieve the goal, it is required for the system to implement the functionalities of device connection,data collection, data classification, data recording and retrieval as well as data visualization. Mindwave mobile 2 is connected to the server using Bluetooth through its own module. The rest of the system contains three main parts, a machine learning model which deals with the data classification,a web server backend that controls the data flowing in the structure and a web app frontend that provides interactions and data visualization to the users. In addition, we also choose to use Amazon DynamoDB as our database here to record the brainwave data from the users with the classification results and timestamp. The three main parts will be discussed in detail in the following sections.