Skip to main content

This toolbox provides a realtime visualization of eye tracking data to be used for designing passive BCI system.

Project description

IMPORTANT

In case, this toolbox doesn't works as intended or you find some issues, create an issue in the tracker (https://github.com/VinayIN/pyETA-toolbox/issues) and I will try to resolve it. (Please attach errors & log)

pyETA-toolbox (Eye Tracker Analyzer)

  • This provides a real-time eyetracking metric (especially fixation & Saccades).
  • This tool also provides for validation of the eye-tracker performance on a user.
  • The tool provides 22 channels, following table describes the EEG channel information in order:
No. Channel Name Type Unit
Left Eye
1 left_gaze_x gaze normalized
2 left_gaze_y gaze normalized
3 left_pupil_diameter pupil mm
4 left_fixated fixation boolean
5 left_velocity velocity px
6 left_fixation_timestamp timestamp s
7 left_fixation_elapsed duration s
8 left_filtered_gaze_x filtered_gaze normalized
9 left_filtered_gaze_y filtered_gaze normalized
Right Eye
10 right_gaze_x gaze normalized
11 right_gaze_y gaze normalized
12 right_pupil_diameter pupil mm
13 right_fixated fixation boolean
14 right_velocity velocity px
15 right_fixation_timestamp timestamp s
16 right_fixation_elapsed duration s
17 right_filtered_gaze_x filtered_gaze normalized
18 right_filtered_gaze_y filtered_gaze normalized
Screen Data
19 screen_width screen px
20 screen_height screen px
21 timestamp timestamp s
22 local_clock timestamp s

Alternative Installations

Download the pyeta-toolbox-<version>-py3-none-any.whl file from here: https://github.com/VinayIN/pyETA-toolbox/releases and install using pip

# move the .whl file to your workspace
# once moved verify using ls bash command, if found
# replace .whl file with the one just downloaded. it should have this format with a different <version> 
pip install pyeta-toolbox-<version>-py3-none-any.whl

or

CAUTION: This below method installs the development version and might have bugs

pip install git+https://github.com/VinayIN/pyETA-toolbox.git

Usage

There are 2 ways this tool can be used (CLI - track/window/validate & GUI - browser/application), both are shown below:

prerequisite: pyETA-toolbox needs to be installed

1. CLI

Command:

pyETA track

Parameters:

  • --push_stream: Pushes the data to an LSL stream.
  • --data_rate: Specifies the rate of the data stream.
  • --use_mock: Uses a mock service for the eye tracker.
  • --fixation: Adds fixation duration to the data stream.
  • --velocity: Specifies the velocity threshold for fixation.
  • --accept_screen_nans: Avoids correcting for NaNs.
  • --save_data: Saves the data to a file.
  • --verbose: Displays debug statements.
  • --duration: Specifies the duration for which to track the data.
  • --screen_index: for multi-screen execution, use the index to capture the data from a specific screen with the resolution

An example with tracker running with fixation and a mock service that runs for a duration of 10sec and stops (if --use_mock is not provided, it searches for the eye tracker)

pyETA track --fixation --use_mock --duration 10

Command:
pyETA window

Parameters:

  • --use_mock: Use mockup tracker
  • --screen_index: Screen index to display the validation window
  • --verbose: Enable verbose logging

Example with parameters to run the validation window

    pyETA window --use_mock --screen_index=0 

Command:
pyETA validate

Parameters:

  • --csv: Name of the output CSV file. (example: myfile.csv)

Example with parameters to fetch the metrics

    pyETA validate --csv=myfile.csv

2. GUI

Command:
pyETA application

or execute the pyETA.exe(To be implemented)

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page