From f93d3e2b011fe1c1de93d0094ca45584ddd49936 Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Mon, 28 Aug 2023 15:05:01 +0200 Subject: Improving gaze analysis pipeline documentation. --- .../ar_layer_configuration_and_execution.md | 23 +++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'docs/user_guide/gaze_analysis_pipeline/ar_layer_configuration_and_execution.md') diff --git a/docs/user_guide/gaze_analysis_pipeline/ar_layer_configuration_and_execution.md b/docs/user_guide/gaze_analysis_pipeline/ar_layer_configuration_and_execution.md index c9ca097..3503d1a 100644 --- a/docs/user_guide/gaze_analysis_pipeline/ar_layer_configuration_and_execution.md +++ b/docs/user_guide/gaze_analysis_pipeline/ar_layer_configuration_and_execution.md @@ -18,6 +18,7 @@ Here is the JSON ArFrame configuration file example where one layer is added: ... "layers": { "MyLayer": { + "aoi_color": [0, 0, 255], "aoi_scene" : { "upper_left_corner": [[0, 0], [960, 0], [960, 540], [0, 540]], "upper_right_corner": [[960, 0], [1920, 0], [1920, 540], [960, 540]], @@ -57,7 +58,9 @@ from argaze import ArFeatures for name, ar_layer in ar_frame.layers.items(): print("name:", ar_layer.name) + print("AOI color:", ar_layer.aoi_color) print("AOI scene:", ar_layer.aoi_scene) + print("AOI matcher type:", type(ar_layer.aoi_matcher)) print("AOI scan path:", ar_layer.aoi_scan_path) for module, analyzer in ar_layer.aoi_scan_path_analyzers.items(): @@ -70,6 +73,7 @@ Finally, here is what the program writes in console: ... name: MyLayer +AOI color: [0, 0, 255] AOI scene: upper_left_corner: [[0, 0], [960, 0], [960, 540], [0, 540]] @@ -79,6 +83,7 @@ AOI scene: [[0, 540], [960, 540], [960, 1080], [0, 1080]] lower_right_corner: [[960, 540], [1920, 540], [1920, 1080], [960, 1080]] +AOI matcher type: AOI scan path: [] AOI scan path analyzer module: argaze.GazeAnalysis.Basic AOI scan path analyzer module: argaze.GazeAnalysis.TransitionMatrix @@ -91,6 +96,10 @@ Now, let's understand the meaning of each JSON entry. The name of the [ArLayer](../../../argaze/#argaze.ArFeatures.ArLayer). Basically useful for visualisation purpose. +### AOI Color + +The color of [ArLayer](../../../argaze/#argaze.ArFeatures.ArLayer)'s AOI. Basically useful for visualisation purpose. + ### AOI Scene The [AOIScene](../../../argaze/#argaze.AreaOfInterest.AOIFeatures.AOIScene) defines a set of 2D [AreaOfInterest](../../../argaze/#argaze.AreaOfInterest.AOIFeatures.AreaOfInterest) registered by name. @@ -103,9 +112,9 @@ The first [ArLayer](../../../argaze/#argaze.ArFeatures.ArLayer) pipeline step ai ![AOI Matcher](../../img/ar_layer_aoi_matcher.png) -The matching method can be selected by instantiating a particular [AOIMatcher](../../../argaze/#argaze.GazeFeatures.AOIMatcher) from the [argaze.GazeAnalysis](../../../argaze/#argaze.GazeAnalysis) submodule or [another python package](../advanced_topics/plugin_loading). +The matching algorithm can be selected by instantiating a particular [AOIMatcher](../../../argaze/#argaze.GazeFeatures.AOIMatcher) from the [argaze.GazeAnalysis](../../../argaze/#argaze.GazeAnalysis) submodule or [from another python package](../advanced_topics/module_loading). -In the example file, the choosen matching method is the [Deviation Circle Coverage](../../../argaze/#argaze.GazeAnalysis.DeviationCircleCoverage) which has one specific *coverage_threshold* attribute. +In the example file, the choosen matching algorithm is the [Deviation Circle Coverage](../../../argaze/#argaze.GazeAnalysis.DeviationCircleCoverage) which has one specific *coverage_threshold* attribute. !!! warning JSON *aoi_matcher* entry is mandatory. Otherwise, the AOIScanPath and AOIScanPathAnalyzers steps are disabled. @@ -116,18 +125,18 @@ The second [ArLayer](../../../argaze/#argaze.ArFeatures.ArLayer) pipeline step a ![AOI Scan Path](../../img/ar_layer_aoi_scan_path.png) -Once fixations and saccades are identified and fixations are matched to AOI, they are automatically appended to the AOIScanPath if required. +Once identified gaze movements are matched to AOI, they are automatically appended to the AOIScanPath if required. The [AOIScanPath.duration_max](../../../argaze/#argaze.GazeFeatures.AOIScanPath.duration_max) attribute is the duration from which older AOI scan steps are removed each time new AOI scan steps are added. +!!! note + JSON *aoi_scan_path* entry is not mandatory. If aoi_scan_path_analyzers entry is not empty, the AOIScanPath step is automatically enabled. + ### AOI Scan Path Analyzers Finally, the last [ArLayer](../../../argaze/#argaze.ArFeatures.ArLayer) pipeline step consists in passing the previously built [AOIScanPath](../../../argaze/#argaze.GazeFeatures.AOIScanPath) to each loaded [AOIScanPathAnalyzer](../../../argaze/#argaze.GazeFeatures.AOIScanPathAnalyzer). -Each analysis algorithm can be selected by instantiating a particular [AOIScanPathAnalyzer](../../../argaze/#argaze.GazeFeatures.AOIScanPathAnalyzer) from the [argaze.GazeAnalysis](../../../argaze/#argaze.GazeAnalysis) submodule or [another python package](../advanced_topics/plugin_loading). - -!!! note - JSON *aoi_scan_path* entry is not mandatory. If aoi_scan_path_analyzers entry is not empty, the AOIScanPath step is automatically enabled. +Each analysis algorithm can be selected by instantiating a particular [AOIScanPathAnalyzer](../../../argaze/#argaze.GazeFeatures.AOIScanPathAnalyzer) from the [argaze.GazeAnalysis](../../../argaze/#argaze.GazeAnalysis) submodule or [from another python package](../advanced_topics/module_loading). ## Pipeline execution -- cgit v1.1