aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThéo de la Hogue2023-10-16 12:19:05 +0200
committerThéo de la Hogue2023-10-16 12:19:05 +0200
commita2960562b3a66f610d8d7d8e80faedc2fff024b8 (patch)
tree3fce9d9da103214c86709046965ff1c9a9899065
parentf26058148061f80eb4bb3fe16d6a24c910bf8bd5 (diff)
downloadargaze-a2960562b3a66f610d8d7d8e80faedc2fff024b8.zip
argaze-a2960562b3a66f610d8d7d8e80faedc2fff024b8.tar.gz
argaze-a2960562b3a66f610d8d7d8e80faedc2fff024b8.tar.bz2
argaze-a2960562b3a66f610d8d7d8e80faedc2fff024b8.tar.xz
Improving DeviationcircleCoverage module. Outputting probabilities instead of coverages values.
-rw-r--r--src/argaze/GazeAnalysis/DeviationCircleCoverage.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/argaze/GazeAnalysis/DeviationCircleCoverage.py b/src/argaze/GazeAnalysis/DeviationCircleCoverage.py
index f57d432..acc0665 100644
--- a/src/argaze/GazeAnalysis/DeviationCircleCoverage.py
+++ b/src/argaze/GazeAnalysis/DeviationCircleCoverage.py
@@ -33,8 +33,8 @@ class AOIMatcher(GazeFeatures.AOIMatcher):
self.__look_count = 0
self.__looked_aoi_data = (None, None)
+ self.__looked_probabilities = {}
self.__circle_ratio_sum = {}
- self.__aoi_coverages = {}
self.__matched_gaze_movement = None
self.__matched_region = None
@@ -54,7 +54,7 @@ class AOIMatcher(GazeFeatures.AOIMatcher):
# BAD: we use deviation_max attribute which is an attribute of DispersionThresholdIdentification.Fixation class
region, _, circle_ratio = aoi.circle_intersection(gaze_movement.focus, gaze_movement.deviation_max)
- if name not in self.exclude and circle_ratio > 0:
+ if name not in self.exclude and circle_ratio > self.coverage_threshold:
# Sum circle ratio to update aoi coverage
try:
@@ -78,15 +78,15 @@ class AOIMatcher(GazeFeatures.AOIMatcher):
# Update looked aoi data
self.__looked_aoi_data = most_likely_looked_aoi_data
- # Calculate looked aoi circle ratio means
- self.__aoi_coverages = {}
+ # Calculate circle ratio means as looked probabilities
+ self.__looked_probabilities = {}
for aoi_name, circle_ratio_sum in self.__circle_ratio_sum.items():
circle_ratio_mean = circle_ratio_sum / self.__look_count
- # filter circle ration mean greater than 1
- self.__aoi_coverages[aoi_name] = circle_ratio_mean if circle_ratio_mean < 1 else 1
+ # Avoid probability greater than 1
+ self.__looked_probabilities[aoi_name] = circle_ratio_mean if circle_ratio_mean < 1 else 1
# Update matched gaze movement
self.__matched_gaze_movement = gaze_movement
@@ -95,9 +95,7 @@ class AOIMatcher(GazeFeatures.AOIMatcher):
self.__matched_region = matched_region
# Return
- if self.__aoi_coverages[most_likely_looked_aoi_data[0]] > self.coverage_threshold:
-
- return self.__looked_aoi_data
+ return self.__looked_aoi_data
elif GazeFeatures.is_saccade(gaze_movement):
@@ -173,8 +171,11 @@ class AOIMatcher(GazeFeatures.AOIMatcher):
return self.__looked_aoi_data[0]
@property
- def aoi_coverages(self) -> dict:
- """Get all aoi coverage means for current fixation.
- It represents the ratio of fixation deviation circle surface that used to cover the aoi."""
+ def looked_probabilities(self) -> dict:
+ """Get probabilities to be looked by current fixation for each aoi.
+
+ !!! note
+ aoi where fixation deviation circle never passed the coverage threshold will be missing.
+ """
- return self.__aoi_coverages \ No newline at end of file
+ return self.__looked_probabilities \ No newline at end of file