aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/argaze.test/GazeAnalysis/ExploitExploreRatio.py6
-rw-r--r--src/argaze/GazeAnalysis/ExploreExploitRatio.py (renamed from src/argaze/GazeAnalysis/ExploitExploreRatio.py)21
-rw-r--r--src/argaze/GazeAnalysis/__init__.py2
-rw-r--r--src/argaze/utils/demo_data/demo_gaze_analysis_setup.json2
-rw-r--r--src/argaze/utils/demo_gaze_analysis_run.py6
5 files changed, 16 insertions, 21 deletions
diff --git a/src/argaze.test/GazeAnalysis/ExploitExploreRatio.py b/src/argaze.test/GazeAnalysis/ExploitExploreRatio.py
index 0e6b74a..7b323d4 100644
--- a/src/argaze.test/GazeAnalysis/ExploitExploreRatio.py
+++ b/src/argaze.test/GazeAnalysis/ExploitExploreRatio.py
@@ -10,7 +10,7 @@ __license__ = "BSD"
import unittest
from argaze import GazeFeatures
-from argaze.GazeAnalysis import ExploitExploreRatio
+from argaze.GazeAnalysis import ExploreExploitRatio
from argaze.utils import UtilsFeatures
GazeFeaturesTest = UtilsFeatures.importFromTestPackage('GazeFeatures')
@@ -21,7 +21,7 @@ class TestScanPathAnalyzer(unittest.TestCase):
def test_analyze(self):
"""Test analyze method."""
- xxr_analyzer = ExploitExploreRatio.ScanPathAnalyzer()
+ xxr_analyzer = ExploreExploitRatio.ScanPathAnalyzer()
scan_path = GazeFeaturesTest.build_scan_path(10)
@@ -31,7 +31,7 @@ class TestScanPathAnalyzer(unittest.TestCase):
xxr_analyzer.analyze(scan_path)
# Check exploit explore ratio: it should greater than 1 because of build_scan_path
- self.assertGreaterEqual(xxr_analyzer.exploit_explore_ratio, 1.)
+ self.assertGreaterEqual(xxr_analyzer.explore_exploit_ratio, 1.)
if __name__ == '__main__':
diff --git a/src/argaze/GazeAnalysis/ExploitExploreRatio.py b/src/argaze/GazeAnalysis/ExploreExploitRatio.py
index f35561f..b4550e7 100644
--- a/src/argaze/GazeAnalysis/ExploitExploreRatio.py
+++ b/src/argaze/GazeAnalysis/ExploreExploitRatio.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-"""Exploit/Explore ratio module.
+"""Explore/Explore ratio module.
"""
__author__ = "Théo de la Hogue"
@@ -16,13 +16,8 @@ import numpy
@dataclass
class ScanPathAnalyzer(GazeFeatures.ScanPathAnalyzer):
- """Implementation of exploit vs explore ratio algorithm as described in:
+ """Implementation of explore vs exploit ratio algorithm as described in:
- **Goldberg J. H., Kotval X. P. (1999).**
- *Computer interface evaluation using eye movements: methods and constructs.*
- International Journal of Industrial Ergonomics (631–645).
- [https://doi.org/10.1016/S0169-8141(98)00068-7](https://doi.org/10.1016/S0169-8141\\(98\\)00068-7)
-
**Dehais F., Peysakhovich V., Scannella S., Fongue J., Gateau T. (2015).**
*Automation surprise in aviation: Real-time solutions.*
Proceedings of the 33rd annual ACM conference on Human Factors in Computing Systems (2525–2534).
@@ -36,7 +31,7 @@ class ScanPathAnalyzer(GazeFeatures.ScanPathAnalyzer):
super().__init__()
- self.__exploit_explore_ratio = 0.
+ self.__explore_exploit_ratio = 0.
def analyze(self, scan_path: GazeFeatures.ScanPathType):
"""Analyze scan path."""
@@ -63,13 +58,13 @@ class ScanPathAnalyzer(GazeFeatures.ScanPathAnalyzer):
long_fixations_duration = numpy.array(long_fixations_durations).sum()
saccades_duration = numpy.array(saccades_durations).sum()
- assert(saccades_duration + short_fixations_duration > 0)
+ assert(long_fixations_duration > 0)
- self.__exploit_explore_ratio = long_fixations_duration / (saccades_duration + short_fixations_duration)
+ self.__explore_exploit_ratio = (saccades_duration + short_fixations_duration) / long_fixations_duration
@property
- def exploit_explore_ratio(self) -> float:
- """Exploit/Explore ratio."""
+ def explore_exploit_ratio(self) -> float:
+ """Explore/Exploit ratio."""
- return self.__exploit_explore_ratio
+ return self.__explore_exploit_ratio
\ No newline at end of file
diff --git a/src/argaze/GazeAnalysis/__init__.py b/src/argaze/GazeAnalysis/__init__.py
index 164de74..62e0823 100644
--- a/src/argaze/GazeAnalysis/__init__.py
+++ b/src/argaze/GazeAnalysis/__init__.py
@@ -1,4 +1,4 @@
"""
Various gaze movement identification, AOI matching and scan path analysis algorithms.
"""
-__all__ = ['Basic', 'DispersionThresholdIdentification', 'VelocityThresholdIdentification', 'TransitionMatrix', 'KCoefficient', 'LempelZivComplexity', 'NGram', 'Entropy', 'NearestNeighborIndex', 'ExploitExploreRatio'] \ No newline at end of file
+__all__ = ['Basic', 'DispersionThresholdIdentification', 'VelocityThresholdIdentification', 'TransitionMatrix', 'KCoefficient', 'LempelZivComplexity', 'NGram', 'Entropy', 'NearestNeighborIndex', 'ExploreExploitRatio'] \ No newline at end of file
diff --git a/src/argaze/utils/demo_data/demo_gaze_analysis_setup.json b/src/argaze/utils/demo_data/demo_gaze_analysis_setup.json
index fe5d197..f921662 100644
--- a/src/argaze/utils/demo_data/demo_gaze_analysis_setup.json
+++ b/src/argaze/utils/demo_data/demo_gaze_analysis_setup.json
@@ -18,7 +18,7 @@
"NearestNeighborIndex": {
"size": [1920, 1149]
},
- "ExploitExploreRatio": {
+ "ExploreExploitRatio": {
"short_fixation_duration_threshold": 0
}
},
diff --git a/src/argaze/utils/demo_gaze_analysis_run.py b/src/argaze/utils/demo_gaze_analysis_run.py
index 789657b..9856d90 100644
--- a/src/argaze/utils/demo_gaze_analysis_run.py
+++ b/src/argaze/utils/demo_gaze_analysis_run.py
@@ -206,12 +206,12 @@ def main():
except KeyError:
pass
- # Display Exploit/Explore ratio analysis if loaded
+ # Display Explore/Exploit ratio analysis if loaded
try:
- xxr_analyser = ar_frame.scan_path_analyzers["argaze.GazeAnalysis.ExploitExploreRatio"]
+ xxr_analyser = ar_frame.scan_path_analyzers["argaze.GazeAnalysis.ExploreExploitRatio"]
- cv2.putText(frame_image, f'Exploit explore ratio: {xxr_analyser.exploit_explore_ratio:.3f}', (20, ar_frame.size[1]-360), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
+ cv2.putText(frame_image, f'Explore/Exploit ratio: {xxr_analyser.explore_exploit_ratio:.3f}', (20, ar_frame.size[1]-360), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
except KeyError: