Demonstrations scripts

Collection of command-line scripts for demonstration purpose.

Note

Consider that all inline commands below have to be executed at the root of ArGaze package folder.

Note

Use -h option to get command arguments documentation.

Note

Each demonstration outputs metrics into _export/records folder.

Random context

Load random_context.json file to generate random gaze positions:

python -m argaze load ./src/argaze/utils/demo/random_context.json

CSV file context

Load csv_file_context_xy_joined.json file to analyze gaze positions from a CSV file where gaze position coordinates are joined as a list in one single column:

python -m argaze load ./src/argaze/utils/demo/csv_file_context_xy_joined.json

Load csv_file_context_xy_splitted.json file to analyze gaze positions from a CSV file where gaze position coordinates are splitted in two seperated column:

python -m argaze load ./src/argaze/utils/demo/csv_file_context_xy_splitted.json

Load csv_file_context_left_right_eyes.json file to analyze gaze positions from a CSV file where gaze position coordinates and validity are given for each eye in six separated columns.:

python -m argaze load ./src/argaze/utils/demo/csv_file_context_left_right_eyes.json

Note

The left/right eyes context allows to parse Tobii Spectrum data for example.

OpenCV

Cursor context

Load opencv_cursor_context.json file to capture cursor pointer positions over OpenCV window:

python -m argaze load ./src/argaze/utils/demo/opencv_cursor_context.json

Movie context

Load opencv_movie_context.json file to playback a movie and also capture cursor pointer positions over OpenCV window:

python -m argaze load ./src/argaze/utils/demo/opencv_movie_context.json

Camera context

Edit aruco_markers_pipeline.json file as to adapt the size to the camera resolution and to set a consistent sides_mask value.

Edit opencv_camera_context.json file as to select camera device identifier (default is 0).

Then, load opencv_camera_context.json file to capture camera pictures and also capture cursor pointer positions over OpenCV window:

python -m argaze load ./src/argaze/utils/demo/opencv_camera_context.json

Tobii Pro Glasses 2

Live stream context

Note

This demonstration requires to print A3_demo.pdf file located in ./src/argaze/utils/demo/ folder on A3 paper sheet.

Edit aruco_markers_pipeline.json file as to adapt the size to the camera resolution ([1920, 1080]) and to set sides_mask value to 420.

Edit tobii_g2_live_stream_context.json file as to select exisiting IP address, project or participant names and setup Tobii configuration parameters:

{
    "argaze.utils.contexts.TobiiProGlasses2.LiveStream" : {
        "name": "Tobii Pro Glasses 2 live stream",
        "address": "10.34.0.17",
        "project": "MyProject",
        "participant": "NewParticipant",
        "configuration": {
            "sys_ec_preset": "Indoor",
            "sys_sc_width": 1920,
            "sys_sc_height": 1080,
            "sys_sc_fps": 25,
            "sys_sc_preset": "Auto",
            "sys_et_freq": 50,
            "sys_mems_freq": 100
        },
        "pipeline": "aruco_markers_pipeline.json"
    }
}

Then, load tobii_g2_live_stream_context.json file to find ArUco marker into camera image and, project gaze positions into AOI:

python -m argaze load ./src/argaze/utils/demo/tobii_g2_live_stream_context.json

Segment playback context

Edit aruco_markers_pipeline.json file as to adapt the size to the camera resolution ([1920, 1080]) and to set sides_mask value to 420.

Edit tobii_g2_segment_playback_context.json file to select an existing Tobii segment folder:

{
    "argaze.utils.contexts.TobiiProGlasses2.SegmentPlayback" : {
        "name": "Tobii Pro Glasses 2 segment playback",
        "segment": "record/segments/1",
        "pipeline": "aruco_markers_pipeline.json"
    }
}

Then, load tobii_g2_segment_playback_context.json file to find ArUco marker into camera image and, project gaze positions into AOI:

python -m argaze load ./src/argaze/utils/demo/tobii_g2_segment_playback_context.json

Tobii Pro Glasses 3

Live stream context

Note

This demonstration requires to print A3_demo.pdf file located in ./src/argaze/utils/demo/ folder on A3 paper sheet.

Edit aruco_markers_pipeline.json file as to adapt the size to the camera resolution ([1920, 1080]) and to set sides_mask value to 420.

Load tobii_g3_live_stream_context.json file to find ArUco marker into camera image and, project gaze positions into AOI:

python -m argaze load ./src/argaze/utils/demo/tobii_g3_live_stream_context.json

Pupil Invisible

Live stream context

Note

This demonstration requires to print A3_demo.pdf file located in ./src/argaze/utils/demo/ folder on A3 paper sheet.

Edit aruco_markers_pipeline.json file as to adapt the size to the camera resolution ([1088, 1080]) and to set sides_mask value to 4.

Load pupillabs_invisible_live_stream_context.json file to find ArUco marker into camera image and, project gaze positions into AOI:

python -m argaze load ./src/argaze/utils/demo/pupillabs_invisible_live_stream_context.json

Pupil Neon

Live stream context

Note

This demonstration requires to print A3_demo.pdf file located in ./src/argaze/utils/demo/ folder on A3 paper sheet.

Edit aruco_markers_pipeline.json file as to adapt the size to the camera resolution ([1600, 1200]) and to set sides_mask value to 200.

Load pupillabs_neon_live_stream_context.json file to find ArUco marker into camera image and, project gaze positions into AOI:

python -m argaze load ./src/argaze/utils/demo/pupillabs_neon_live_stream_context.json