diff options
Diffstat (limited to 'docs/user_guide')
7 files changed, 206 insertions, 187 deletions
diff --git a/docs/user_guide/aruco_marker_pipeline/advanced_topics/aruco_detector_configuration.md b/docs/user_guide/aruco_marker_pipeline/advanced_topics/aruco_detector_configuration.md index 410e2d7..7d666ba 100644 --- a/docs/user_guide/aruco_marker_pipeline/advanced_topics/aruco_detector_configuration.md +++ b/docs/user_guide/aruco_marker_pipeline/advanced_topics/aruco_detector_configuration.md @@ -11,16 +11,19 @@ Here is an extract from the JSON [ArUcoCamera](../../../argaze.md/#argaze.ArUcoM ```json { - "name": "My FullHD camera", - "size": [1920, 1080], - "aruco_detector": { - "dictionary": "DICT_APRILTAG_16h5", - "parameters": { - "adaptiveThreshConstant": 10, - "useAruco3Detection": 1 - } - }, - ... + "argaze.ArUcoMarkers.ArUcoCamera.ArUcoCamera": { + "name": "My FullHD camera", + "size": [1920, 1080], + "aruco_detector": { + "dictionary": "DICT_APRILTAG_16h5", + "parameters": { + "adaptiveThreshConstant": 10, + "useAruco3Detection": 1 + } + }, + ... + } +} ``` ## Print ArUcoDetector parameters diff --git a/docs/user_guide/aruco_marker_pipeline/advanced_topics/scripting.md b/docs/user_guide/aruco_marker_pipeline/advanced_topics/scripting.md index 4a2f9ba..c9a06a6 100644 --- a/docs/user_guide/aruco_marker_pipeline/advanced_topics/scripting.md +++ b/docs/user_guide/aruco_marker_pipeline/advanced_topics/scripting.md @@ -6,11 +6,15 @@ This could be particularly useful for realtime AR interaction applications. ## Load ArUcoCamera configuration from dictionary -First of all, [ArUcoCamera](../../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) configuration can be loaded from a python dictionary. +An [ArUcoCamera](../../../argaze.md/#argaze.ArUcoMarkers.ArUcoCamera) configuration can be loaded from a Python dictionary. ```python +from argaze import DataFeatures from argaze.ArUcoMarkers import ArUcoCamera +# Set working directory to enable relative file path loading +DataFeatures.set_working_directory('path/to/folder') + # Edit a dict with ArUcoCamera configuration configuration = { "name": "My FullHD camera", @@ -47,10 +51,10 @@ configuration = { } # Load ArUcoCamera -aruco_camera = ArUcoCamera.ArUcoCamera.from_dict(configuration) +with ArUcoCamera.ArUcoCamera(**configuration) as aruco_camera: -# Do something with ArUcoCamera -... + # Do something with ArUcoCamera + ... ``` ## Access to ArUcoCamera and ArScenes attributes @@ -65,9 +69,9 @@ from argaze import ArFeatures # Assuming the ArUcoCamera is loaded ... -# Iterate over each ArUcoCamera scene -for name, aruco_scene in aruco_camera.scenes.items(): - ... + # Iterate over each ArUcoCamera scene + for name, aruco_scene in aruco_camera.scenes.items(): + ... ``` ## Pipeline execution outputs diff --git a/docs/user_guide/aruco_marker_pipeline/aoi_3d_frame.md b/docs/user_guide/aruco_marker_pipeline/aoi_3d_frame.md index 124d8df..c4514f5 100644 --- a/docs/user_guide/aruco_marker_pipeline/aoi_3d_frame.md +++ b/docs/user_guide/aruco_marker_pipeline/aoi_3d_frame.md @@ -13,63 +13,65 @@ Here is the previous extract where "Left_Screen" and "Right_Screen" AOI are defi ```json { - "name": "My FullHD camera", - "size": [1920, 1080], - ... - "scenes": { - "MyScene" : { - "aruco_markers_group": { - ... - }, - "layers": { - "MyLayer": { - "aoi_scene": { - "Left_Screen": [[0, 0, 0], [15, 0, 0], [0, 18.963333, -6.355470], [15, 18.963333, -6.355470]], - "Right_Screen": [[20, 0, 0], [35, 0, 0], [20, 18.963337 ,-6.355472], [35, 18.963337, -6.355472]], - "Control_Panel": [[49.5, 30, 18.333333], [55.5, 30, 18.333333], [49.5, 38, 18.333333], [55.5, 38, 18.333333]], - "Window": [[-57.8, 5.5, -33.5], [46, 15.5, -35], [1.5, 53, -1], [50.2, 61, 6], [-35.85, 35, -15]] + "argaze.ArUcoMarkers.ArUcoCamera.ArUcoCamera": { + "name": "My FullHD camera", + "size": [1920, 1080], + ... + "scenes": { + "MyScene" : { + "aruco_markers_group": { + ... + }, + "layers": { + "MyLayer": { + "aoi_scene": { + "Left_Screen": [[0, 0, 0], [15, 0, 0], [0, 18.963333, -6.355470], [15, 18.963333, -6.355470]], + "Right_Screen": [[20, 0, 0], [35, 0, 0], [20, 18.963337 ,-6.355472], [35, 18.963337, -6.355472]], + "Control_Panel": [[49.5, 30, 18.333333], [55.5, 30, 18.333333], [49.5, 38, 18.333333], [55.5, 38, 18.333333]], + "Window": [[-57.8, 5.5, -33.5], [46, 15.5, -35], [1.5, 53, -1], [50.2, 61, 6], [-35.85, 35, -15]] + } } - } - }, - "frames": { - "Left_Screen": { - "size": [768, 1024], - "layers": { - "MyLayer": { - "aoi_scene": { - "LeftPanel": { - "Rectangle": { - "x": 0, - "y": 0, - "width": 768, - "height": 180 - } - }, - "CircularWidget": { - "Circle": { - "cx": 384, - "cy": 600, - "radius": 180 + }, + "frames": { + "Left_Screen": { + "size": [768, 1024], + "layers": { + "MyLayer": { + "aoi_scene": { + "LeftPanel": { + "Rectangle": { + "x": 0, + "y": 0, + "width": 768, + "height": 180 + } + }, + "CircularWidget": { + "Circle": { + "cx": 384, + "cy": 600, + "radius": 180 + } } } - } - } - } - }, - "Right_Screen": { - "size": [768, 1024], - "layers": { - "MyLayer": { - "aoi_scene": { - "GeoSector": [[724, 421], [537, 658], [577, 812], [230, 784], [70, 700], [44, 533], [190, 254], [537, 212]] + } + } + }, + "Right_Screen": { + "size": [768, 1024], + "layers": { + "MyLayer": { + "aoi_scene": { + "GeoSector": [[724, 421], [537, 658], [577, 812], [230, 784], [70, 700], [44, 533], [190, 254], [537, 212]] + } } } } } } } + ... } - ... } ``` Now, let's understand the meaning of each JSON entry. diff --git a/docs/user_guide/aruco_marker_pipeline/aoi_3d_projection.md b/docs/user_guide/aruco_marker_pipeline/aoi_3d_projection.md index c004e7f..306e26a 100644 --- a/docs/user_guide/aruco_marker_pipeline/aoi_3d_projection.md +++ b/docs/user_guide/aruco_marker_pipeline/aoi_3d_projection.md @@ -13,27 +13,29 @@ Here is the previous extract where one layer is added to [ArUcoScene](../../arga ```json { - "name": "My FullHD camera", - "size": [1920, 1080], - ... - "scenes": { - "MyScene" : { - "aruco_markers_group": { - ... - }, - "layers": { - "MyLayer": { - "aoi_scene": { - "Left_Screen": [[0, 0, 0], [15, 0, 0], [0, 18.963333, -6.355470], [15, 18.963333, -6.355470]], - "Right_Screen": [[20, 0, 0], [35, 0, 0], [20, 18.963337, -6.355472], [35, 18.963337, -6.355472]], - "Control_Panel": [[49.5, 30, 18.333333], [55.5, 30, 18.333333], [49.5, 38, 18.333333], [55.5, 38, 18.333333]], - "Window": [[-57.8, 5.5, -33.5], [46, 15.5, -35], [1.5, 53, -1], [50.2, 61, 6], [-35.85, 35, -15]] + "argaze.ArUcoMarkers.ArUcoCamera.ArUcoCamera": { + "name": "My FullHD camera", + "size": [1920, 1080], + ... + "scenes": { + "MyScene" : { + "aruco_markers_group": { + ... + }, + "layers": { + "MyLayer": { + "aoi_scene": { + "Left_Screen": [[0, 0, 0], [15, 0, 0], [0, 18.963333, -6.355470], [15, 18.963333, -6.355470]], + "Right_Screen": [[20, 0, 0], [35, 0, 0], [20, 18.963337, -6.355472], [35, 18.963337, -6.355472]], + "Control_Panel": [[49.5, 30, 18.333333], [55.5, 30, 18.333333], [49.5, 38, 18.333333], [55.5, 38, 18.333333]], + "Window": [[-57.8, 5.5, -33.5], [46, 15.5, -35], [1.5, 53, -1], [50.2, 61, 6], [-35.85, 35, -15]] + } } - } - } + } + } } + ... } - ... } ``` @@ -57,35 +59,37 @@ Here is the previous extract where one layer is added to [ArUcoCamera](../../arg ```json { - "name": "My FullHD camera", - "size": [1920, 1080], - ... - "scenes": { - "MyScene" : { - "aruco_markers_group": { - ... - }, - "layers": { - "MyLayer": { - "aoi_scene": { - ... - } + "argaze.ArUcoMarkers.ArUcoCamera.ArUcoCamera": { + "name": "My FullHD camera", + "size": [1920, 1080], + ... + "scenes": { + "MyScene" : { + "aruco_markers_group": { + ... + }, + "layers": { + "MyLayer": { + "aoi_scene": { + ... + } + } } - } + } + }, + "layers": { + "MyLayer": {} } - }, - "layers": { - "MyLayer": {} - } - ... - "image_parameters": { ... - "draw_layers": { - "MyLayer": { - "draw_aoi_scene": { - "draw_aoi": { - "color": [255, 255, 255], - "border_size": 1 + "image_parameters": { + ... + "draw_layers": { + "MyLayer": { + "draw_aoi_scene": { + "draw_aoi": { + "color": [255, 255, 255], + "border_size": 1 + } } } } @@ -122,44 +126,46 @@ Here is the previous extract where AOI matcher, AOI scan path and AOI scan path ```json { - "name": "My FullHD camera", - "size": [1920, 1080], - ... - "scenes": { - "MyScene" : { - "aruco_markers_group": { - ... - }, - "layers": { - "MyLayer": { - "aoi_scene": { - ... - } + "argaze.ArUcoMarkers.ArUcoCamera.ArUcoCamera": { + "name": "My FullHD camera", + "size": [1920, 1080], + ... + "scenes": { + "MyScene" : { + "aruco_markers_group": { + ... + }, + "layers": { + "MyLayer": { + "aoi_scene": { + ... + } + } } - } - } - }, - "layers": { - "MyLayer": { - "aoi_matcher": { - "DeviationCircleCoverage": { - "coverage_threshold": 0.5 - } - }, - "aoi_scan_path": { - "duration_max": 30000 - }, - "aoi_scan_path_analyzers": { - "Basic": {}, - "TransitionMatrix": {}, - "NGram": { - "n_min": 3, - "n_max": 5 + } + }, + "layers": { + "MyLayer": { + "aoi_matcher": { + "argaze.GazeAnalysis.DeviationCircleCoverage.AOIMatcher": { + "coverage_threshold": 0.5 + } + }, + "aoi_scan_path": { + "duration_max": 30000 + }, + "aoi_scan_path_analyzers": { + "argaze.GazeAnalysis.Basic.AOIScanPathAnalyzer": {}, + "argaze.GazeAnalysis.TransitionMatrix.AOIScanPathAnalyzer": {}, + "argaze.GazeAnalysis.NGram.AOIScanPathAnalyzer": { + "n_min": 3, + "n_max": 5 + } } } } + ... } - ... } ``` diff --git a/docs/user_guide/aruco_marker_pipeline/configuration_and_execution.md b/docs/user_guide/aruco_marker_pipeline/configuration_and_execution.md index d5672ea..84877ca 100644 --- a/docs/user_guide/aruco_marker_pipeline/configuration_and_execution.md +++ b/docs/user_guide/aruco_marker_pipeline/configuration_and_execution.md @@ -22,7 +22,7 @@ Here is a simple JSON [ArUcoCamera](../../argaze.md/#argaze.ArUcoMarkers.ArUcoCa "dictionary": "DICT_APRILTAG_16h5" }, "gaze_movement_identifier": { - "DispersionThresholdIdentification": { + "argaze.GazeAnalysis.DispersionThresholdIdentification.GazeMovementIdentifier": { "deviation_max_threshold": 25, "duration_min_threshold": 150 } diff --git a/docs/user_guide/aruco_marker_pipeline/pose_estimation.md b/docs/user_guide/aruco_marker_pipeline/pose_estimation.md index c684f60..affa232 100644 --- a/docs/user_guide/aruco_marker_pipeline/pose_estimation.md +++ b/docs/user_guide/aruco_marker_pipeline/pose_estimation.md @@ -13,46 +13,48 @@ Here is an extract from the JSON [ArUcoCamera](../../argaze.md/#argaze.ArUcoMark ```json { - "name": "My FullHD camera", - "size": [1920, 1080], - ... - "scenes": { - "MyScene" : { - "aruco_markers_group": { - "dictionary": "DICT_APRILTAG_16h5", - "places": { - "0": { - "translation": [17.5, 2.75, -0.5], - "rotation": [-18.5, 0, 0], - "size": 5 - }, - "1": { - "translation": [46, 34, 18.333], - "rotation": [0, 70, 0], - "size": 5 - }, - "2": { - "translation": [41, 4, 3.333], - "rotation": [-60, 0, 0], - "size": 5 + "argaze.ArUcoMarkers.ArUcoCamera.ArUcoCamera": { + "name": "My FullHD camera", + "size": [1920, 1080], + ... + "scenes": { + "MyScene" : { + "aruco_markers_group": { + "dictionary": "DICT_APRILTAG_16h5", + "places": { + "0": { + "translation": [17.5, 2.75, -0.5], + "rotation": [-18.5, 0, 0], + "size": 5 + }, + "1": { + "translation": [46, 34, 18.333], + "rotation": [0, 70, 0], + "size": 5 + }, + "2": { + "translation": [41, 4, 3.333], + "rotation": [-60, 0, 0], + "size": 5 + } } - } - } - } - }, - ... - "image_parameters": { + } + } + }, ... - "draw_scenes": { - "MyScene": { - "draw_aruco_markers_group": { - "draw_axes": { - "thickness": 3, - "length": 10 - }, - "draw_places": { - "color": [0, 0, 0], - "border_size": 1 + "image_parameters": { + ... + "draw_scenes": { + "MyScene": { + "draw_aruco_markers_group": { + "draw_axes": { + "thickness": 3, + "length": 10 + }, + "draw_places": { + "color": [0, 0, 0], + "border_size": 1 + } } } } diff --git a/docs/user_guide/utils/demonstrations_scripts.md b/docs/user_guide/utils/demonstrations_scripts.md index a162a49..16b209f 100644 --- a/docs/user_guide/utils/demonstrations_scripts.md +++ b/docs/user_guide/utils/demonstrations_scripts.md @@ -14,16 +14,16 @@ Collection of command-line scripts for demonstration purpose. Load ArFrame with a single ArLayer from **demo_gaze_analysis_setup.json** file then, simulate gaze position using mouse pointer to illustrate gaze features. ```shell -python -m argaze ./src/argaze/utils/demo/opencv_window_context_setup.json +python -m argaze ./src/argaze/utils/demo/opencv_window_context.json ``` ## Tobii Pro Glasses 2 ### Tobii live stream context !!! note - this demonstration requires to print **A3_demo.pdf** file located in *./src/argaze/utils/demo_data/* folder on A3 paper sheet. + 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_setup.json** file as below with your own parameters values: +Edit **tobii_live_stream_context.json** file as below with your own parameters values: ```json { @@ -42,6 +42,7 @@ Edit **tobii_live_stream_context_setup.json** file as below with your own parame "sys_mems_freq": 100 }, "pipeline": "aruco_markers_pipeline.json", + "catch_exceptions": true, "image_parameters": { "draw_times": true, "draw_exceptions": true @@ -53,15 +54,15 @@ Edit **tobii_live_stream_context_setup.json** file as below with your own parame Then, execute this command: ```shell -python -m argaze ./src/argaze/utils/demo/tobii_live_stream_context_setup.json +python -m argaze ./src/argaze/utils/demo/tobii_live_stream_context.json ``` ### Tobii post-processing context !!! note - this demonstration requires to print **A3_demo.pdf** file located in *./src/argaze/utils/demo_data/* folder on A3 paper sheet. + this demonstration requires to print **A3_demo.pdf** file located in *./src/argaze/utils/demo/* folder on A3 paper sheet. -Edit **tobii_post_processing_context_setup.json** file as below with your own parameters values: +Edit **tobii_post_processing_context.json** file as below with your own parameters values: ```json { @@ -69,6 +70,7 @@ Edit **tobii_post_processing_context_setup.json** file as below with your own pa "name": "Tobii Pro Glasses 2 post-processing", "segment": "record/segments/1", "pipeline": "aruco_markers_pipeline.json", + "catch_exceptions": true, "image_parameters": { "draw_times": true, "draw_exceptions": true @@ -80,5 +82,5 @@ Edit **tobii_post_processing_context_setup.json** file as below with your own pa Then, execute this command: ```shell -python -m argaze ./src/argaze/utils/demo/tobii_post_processing_context_setup.json +python -m argaze ./src/argaze/utils/demo/tobii_post_processing_context.json ``` |