python main.py
starts a GUI of the tracking experiment
Choose the output directory:
In this directory, the output files wil be stored:
1. `video_camera.json` camera and video timeline in the tracking session
2. tracker.json - tracker frames timeline in the tracking session
3. out-video.avi - camera frames taken during the tracking session
4. deomstration-video.avi shows the stimuli, human gaze and camera frames synchronized in a single video
To use the tracker library the class TrackerCtrl in the file tracker_ctrl.py binds the control functions in TobiiEyeLib.dll so that they can be called in python environment
Eye Tracker bindings that can be called from Python using cdll module.
The functions in the library should be executed in order for optimal performance:
`int start()` fires up the tracker device, reset previous session if exists and start recording
`void stop()` stops the recording session
`void save_json(char* path)` save the tracker results to the path given
`size_t get_json(char* buffer, size_t buffer_size)` designed so that it
can be called twice, the first time returns the size of required bufer
if buffer is a null pointer.
when buffer is not nullpointer then the resultig json is copied to the buffer.
`void kill()` stops the connection to the device altogether
The python interface connects the above defined lib to the other recording threads.
i.e
- Camera frames
- Video frames
The camera frames can be controlled by the CameraCtrl class in camera_feed_ctrl.py
The video frames are controlled by the video_feed_ctrl module
To process translations, between english and russian languages literals edit the _locale.json
kivy
numpy
opencv
Pillow
json
ctypes
pandas
Setting up kivy for the GUI app
python -m pip install kivy_examples==1.11.1
python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.* kivy_deps.glew==0.1.*
python -m pip install kivy_deps.gstreamer==0.1.*
python -m pip install kivy_deps.angle==0.1.*
python -m pip install kivy==1.11.1
https://drive.google.com/drive/folders/19hDrP7U7ChThVpxspUiiXnMFEnzLJSI5?usp=sharing
- Records Tracker data, Video frames, Camera frames
- Exports timeline
- Replays recorded session
- Improvements to UI
- Stimuli source can be JSON with description of duration to support image input
- User can choose which data streams to view during playback
- Faster playback, video and camera frames are preloaded to memory
- Add combined video export on user demand
- Bugfix incompatibility of frame sizes when replaying sessions recorded on different machines
- User can type/paste path to source directory in the load dialog
- Add frame skipping
- Add optimal frame skipping
- Frame skipping is controlled on empirical level by the user
- Add user playback speed by select
- Remove the empirical controls from v1.0.3
- Memory efficient. No longer preload video frames to memory
- Add video FPS controller together with speed multiplier
gis-eye-tracker-mipt.v1.0.5-dev
- Combines the tracker, player and stimuli generator components into a singular app.
- Fix the speed issues on the player component
gis-eyetracker-mipt.v1.0.6-dev
- New bugfixes
- Graceful handling of errors and missing files
- File logging of events and errors
gis-eyetracker-mipt.v1.0.7-dev
- New bugfixes
- Splash screen
- Settings page
- OpenFace integration on Windows and Mac
gis-eyetracker-mipt.v1.0.8-dev
- New bugfixes
- Working Settings screen
- Camera configuration screen
- User can choose the openface directory in settings
- User can change UI language
- More space in the main views on the tracker and the playback screens
- User can hide the frame details pane to gain more space
- User can define log directory and also the log level for the kivy operations. Tracker and Playback logs are in seperate file.
-
v1.1.0 checking for updates in the settings page and downloading of an available update
-
v1.1.0 brings more automation in the compiling process
- v1.1.1 patches universality bugs