![]() |
Gaze Engine
1.0
|
The Gaze Engine is a software library designed to estimate and visualize a person's gaze direction. It processes video frames to detect faces, analyzes facial landmarks to determine head pose and eye direction, and combines these to calculate a final gaze vector. The engine relies heavily on OpenCV and various filtering techniques for smooth and stable results.
gaze::HeadGazeEstimation: This class is responsible for calculating the head's 3D orientation (pose) from facial landmarks. It determines the direction the head is pointing, which serves as a baseline for the overall gaze.
gaze::EyeGazeEstimation: This class specifically analyzes the eye regions to estimate the direction of the pupils relative to the head. It also calculates the openness of each eye.
core::filter::PoseKalmanFilter: To ensure smooth and stable tracking of the head's position and rotation, a Kalman Filter is implemented. This filter reduces jitter from raw landmark data, providing a more realistic estimation of the head's pose over time.
GazeEngine::init(resourcePath)
initializes the main engine and loads all necessary models and configurations.GazeEngine::process(input, output)
executes the full gaze estimation pipeline on an input image and renders the results on the output image.gaze::GazeEstimation::process(detection, drawingFrame)
serves as the central function to process a detected face, invoking both head and eye estimators, and drawing the resulting gaze vectors.gaze::HeadGazeEstimation::process(detection, drawingFrame)
calculates and visualizes the head's pose.gaze::EyeGazeEstimation::process(...)
processes eye landmarks to determine gaze direction and eye openness.core::filter::PoseKalmanFilter::update(...)
updates the Kalman filter with new raw pose data to return a smoothed and predicted pose.The project files are organized in the C:/Projects/Engine/AntalEngine/Engine
directory. Key header files include:
GazeEngine
class.