Evaluation
Analysis and evaluation tools.
Performance analysis API for eye tracking systems.
Exports functions to analyze accuracy and robustness across gaze points, observer positions, and calibration quality.
- pyetsimul.evaluation.accuracy_at_calibration_points(et, eye)[source]
Computes gaze error at calibration points to assess calibration quality.
Evaluates calibration accuracy by testing gaze prediction at original calibration targets. Provides comprehensive error analysis with both spatial and angular metrics.
To visualize the results, call calib_results.interactive_plot() on the returned object.
- Parameters:
et (
EyeTracker) – Eye tracker structureeye (
Eye) – Pre-configured Eye object (required)
- Return type:
- Returns:
CalibrationResults object with error statistics, printing, and on-demand visualization
Calibration Analysis
Calibration analysis for eye tracking systems.
This module analyzes eye tracker calibration accuracy by testing gaze estimation at the original calibration points to assess calibration quality.
- class pyetsimul.evaluation.calibration_analysis.CalibrationResults(errors, plot_data=None)[source]
Bases:
objectCalibration accuracy results with on-demand visualization.
- interactive_plot(show=True)[source]
Create the interactive calibration plot on demand.
No figure is created until this method is called, preventing figures from lurking in matplotlib’s global figure manager and appearing unexpectedly.
- Parameters:
show (
bool) – If True (default), display the figure with plt.show() (blocks until closed). If False, return the figure for saving (fig.savefig()) without displaying. The figure is removed from matplotlib’s manager to prevent it from appearing unexpectedly in later plt.show() calls.- Return type:
- Returns:
The matplotlib Figure.
- pyetsimul.evaluation.calibration_analysis.accuracy_at_calibration_points(et, eye)[source]
Computes gaze error at calibration points to assess calibration quality.
Evaluates calibration accuracy by testing gaze prediction at original calibration targets. Provides comprehensive error analysis with both spatial and angular metrics.
To visualize the results, call calib_results.interactive_plot() on the returned object.
- Parameters:
et (
EyeTracker) – Eye tracker structureeye (
Eye) – Pre-configured Eye object (required)
- Return type:
- Returns:
CalibrationResults object with error statistics, printing, and on-demand visualization
Calibration Utilities
Utility functions for calibration analysis.
This module provides utility functions for calibration analysis, including parameter printing and data formatting functions.
- pyetsimul.evaluation.calibration_utils.pprint_polynomial_parameters(et)[source]
Print polynomial parameters from calibrated eye tracker.
Displays calibration coefficients and polynomial type for analysis. Shows calibration status and coefficient values for debugging.
- Return type:
- Parameters:
et (EyeTracker)
Gaze Accuracy
Generic gaze accuracy evaluation that works with any pre-generated dataset.
- class pyetsimul.evaluation.gaze_accuracy.GazeAccuracyResult(errors_3d, errors_angular, predicted_points, ground_truth_points, observer_positions, error_stats, total_measurements, successful_predictions, variation=None)[source]
Bases:
objectResults from gaze accuracy evaluation.
- Parameters:
- predicted_points: list[Position3D | None]
- ground_truth_points: list[Position3D]
- observer_positions: list[Position3D]
- pyetsimul.evaluation.gaze_accuracy.evaluate_gaze_accuracy(eye_tracker, dataset, description='Evaluating gaze accuracy', camera_id=0, eye_id=0)[source]
Evaluate gaze accuracy using pre-generated dataset.
This function takes a calibrated eye tracker and a dataset (in-memory dictionary) and evaluates accuracy by: 1. Reconstructing EyeMeasurement objects from stored pupil/glint data 2. Feeding them directly to the tracker’s prediction stage 3. Comparing predictions against ground truth
- Parameters:
eye_tracker (
EyeTracker) – Calibrated eye tracker to evaluate withdataset (
dict[str,Any]) – In-memory dataset from DataGenerationStrategy.execute()camera_id (
int) – Which camera’s data to use (default: 0)eye_id (
int) – Which eye’s data to use (default: 0)description (
str) – Progress description
- Return type:
- Returns:
GazeAccuracyResult with errors and statistics
Algorithm Comparison
Algorithm comparison for ranking multiple eye tracking algorithms.
- class pyetsimul.evaluation.algorithm_comparison.AlgorithmRanking(rankings, error_stats, success_rates, pairwise_angular_diff, pairwise_cosine_sim, pairwise_amplitude)[source]
Bases:
objectAlgorithm ranking results.
- Parameters:
- pyetsimul.evaluation.algorithm_comparison.compare_algorithms(algorithms, dataset, description='Comparing algorithms', calculate_pairwise=False)[source]
Compare multiple algorithms on same dataset.
- Return type:
- Parameters:
- pyetsimul.evaluation.algorithm_comparison.point_wise_angular_difference(predictions1, predictions2, eye_positions)[source]
Point-wise mean angular error between two algorithms.
- Return type:
- Parameters:
predictions1 (list[Position3D])
predictions2 (list[Position3D])
eye_positions (list[Position3D])
- pyetsimul.evaluation.algorithm_comparison.cosine_similarity_average(predictions1, predictions2)[source]
Average cosine similarity between prediction vectors.
- Return type:
- Parameters:
predictions1 (list[Position3D])
predictions2 (list[Position3D])
- pyetsimul.evaluation.algorithm_comparison.amplitude_agreement(predictions1, predictions2)[source]
Compare prediction magnitudes.
- Return type:
- Parameters:
predictions1 (list[Position3D])
predictions2 (list[Position3D])
Analysis Utilities
Utility functions for performance analysis.
This module provides helper functions used across performance analysis modules to ensure consistency and reduce code duplication.