aboutsummaryrefslogtreecommitdiff
path: root/docs/user_guide/utils/demonstrations_scripts.md
blob: 59df85b4d173f9666fcce8f57a3ba30e9b3119d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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:

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

## OpenCV

### Cursor context

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

```shell
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:

```shell
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 reduce the value of the *sides_mask*.

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:

```shell
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 **tobii_live_stream_context.json** file as to select exisiting IP *address*, *project* or *participant* names and setup Tobii *configuration* parameters:

```json
{
    "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_live_stream_context.json** file to find ArUco marker into camera image and, project gaze positions into AOI:

```shell
python -m argaze load ./src/argaze/utils/demo/tobii_live_stream_context.json
```

### Segment playback context

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

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

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

```shell
python -m argaze load ./src/argaze/utils/demo/tobii_segment_playback_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.

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

```shell
python -m argaze load ./src/argaze/utils/demo/pupillabs_live_stream_context.json
```