All Projects → ErikBjare → thesis

ErikBjare / thesis

Licence: other
MSc thesis on: Classifying brain activity using EEG and automated time tracking of computer use (using ActivityWatch)

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects
Makefile
30231 projects

Projects that are alternatives of or similar to thesis

EEGEdu
Interactive Brain Playground - Browser based tutorials on EEG with webbluetooth and muse
Stars: ✭ 91 (+106.82%)
Mutual labels:  eeg, openbci, muse
Electrophysiologydata
A list of openly available datasets in (mostly human) electrophysiology.
Stars: ✭ 143 (+225%)
Mutual labels:  research, eeg
projects
A website that showcases interesting projects, using Angular JS.
Stars: ✭ 106 (+140.91%)
Mutual labels:  research, thesis
snp-sites
Finds SNP sites from a multi-FASTA alignment file
Stars: ✭ 182 (+313.64%)
Mutual labels:  research
brain-powered
With the Brain Powered honourscourse at the UvA we aimed to control a drone using brain signals, measured by means of EEG, only.
Stars: ✭ 13 (-70.45%)
Mutual labels:  eeg
Paper-Notes
Paper notes in deep learning/machine learning and computer vision
Stars: ✭ 37 (-15.91%)
Mutual labels:  research
boki
Boki: Stateful Serverless Computing with Shared Logs [SOSP '21]
Stars: ✭ 39 (-11.36%)
Mutual labels:  research
gospal
Go static program analyser
Stars: ✭ 56 (+27.27%)
Mutual labels:  research
sbpy
A Python package for small bodies research
Stars: ✭ 60 (+36.36%)
Mutual labels:  research
seviz
SEViz (Symbolic Execution VisualIZer) is a tool for visualizing symbolic execution-based test generation
Stars: ✭ 20 (-54.55%)
Mutual labels:  research
DeclareDesign
DeclareDesign: Declare and Diagnose Research Designs
Stars: ✭ 92 (+109.09%)
Mutual labels:  research
3D-Public-Transport-Simulator
The 3D Public Transport Simulator is a Unity-based simulation, which uses OpenStreetMap data in order to support the simulation of worldwide locations. The development was part of a Bachelor thesis.
Stars: ✭ 87 (+97.73%)
Mutual labels:  thesis
awesome-aws-research
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources for Academic Researchers new to AWS
Stars: ✭ 41 (-6.82%)
Mutual labels:  research
connectomemapper3
Connectome Mapper 3 is a BIDS App that implements full anatomical, diffusion, resting/state functional MRI, and recently EEG processing pipelines, from raw T1 / DWI / BOLD , and preprocessed EEG data to multi-resolution brain parcellation with corresponding connection matrices.
Stars: ✭ 45 (+2.27%)
Mutual labels:  eeg
EstimNetDirected
Equilibrium Expectation for ERGM parameter estimation for large directed networks
Stars: ✭ 18 (-59.09%)
Mutual labels:  research
stripnet
STriP Net: Semantic Similarity of Scientific Papers (S3P) Network
Stars: ✭ 82 (+86.36%)
Mutual labels:  research
openmeeg
A C++ package for low-frequency bio-electromagnetism solving forward problems in the field of EEG and MEG.
Stars: ✭ 62 (+40.91%)
Mutual labels:  eeg
prunnable-layers-pytorch
Prunable nn layers for pytorch.
Stars: ✭ 47 (+6.82%)
Mutual labels:  research
contech
The Contech analysis framework provides the means for generating and analyzing task graphs that enable computer architects and programmers to gain a deeper understanding of parallel programs.
Stars: ✭ 43 (-2.27%)
Mutual labels:  research
tips-for-scientific-research
A collection of tips for scientific research
Stars: ✭ 21 (-52.27%)
Mutual labels:  research

MSc Thesis

GitHub Actions badge Code coverage Typechecking: Mypy Code style: black

My MSc thesis on "Classifying brain activity using electroencephalography and automated time tracking of computer use".

Progress was tracked using GitHub issues and the GitHub Projects board.

Abstract

We investigate the ability of EEG to distinguish between different activities users engage in on their devices, building on previous research which showed a considerable difference in brain activity between code- and prose-comprehension, as well as differences during code- and prose-synthesis. We perform a replication study and improve upon past results using state-of-the-art machine learning classifiers based on Riemannian geometry.

Furthermore, we extend the scope of previous work by introducing the automated time tracking application ActivityWatch, to track the device activities that the user is engaging in. This lets us label EEG data with naturalistic device activity, which we then use to train classifiers to discern activities such as code writing vs prose writing, or work vs media consumption. Our results indicate that a consumer-grade EEG device can discern between different activities that a user performs at the computer. Among other results, we show that not only can code and prose comprehension be distinguished, but also code and prose writing.

Writing

The latest version of the writing can be downloaded at:

Usage

Setting it up:

  • Ensure you have Python 3.7+ and poetry installed
  • Install dependencies with poetry install

Collecting data:

  • Run eegwatch --help for instructions on how to collect EEG data
  • Run ActivityWatch to collect device activity data
  • Run the codeprose task in eeg-notebooks to collect data for the code vs prose task
    • Install eeg-notebooks with pip install git+
    • Run the codeprose task with eegnb runexp -ex visual-codeprose -subject X

Running classifier:

  • Run ./scripts/query_aw.py to collect labels from the running ActivityWatch instance
    • You probably want to adjust the categorization rules embedded in the file
  • (TODO) Run eegclassify --help for instructions on how to train and run the classifier

Devices

I've worked with multiple devices, but the experiments were performed using the Muse S, which is therefore the best-supported device.

  • Muse S
    • PPG support (experimental)
  • Neurosity Notion 1 & 2
  • Neurosity Crown
  • OpenBCI Cyton
  • In theory: any device supported by Brainflow or muse-lsl

Notebooks

Code notebooks are built in CI and available at:

  • Main - primary notebook for the thesis, where we train a classifier for the code vs prose comprehension task.
  • Signal - for signal filtering and quality checking.
  • Activity - for classification of device activities.
  • PPG - for a basic PPG analysis.

Acknowledgements

See the Acknowledgements section in the thesis.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].