-
Notifications
You must be signed in to change notification settings - Fork 0
Home
graph TD
subgraph Client
UI[User Interface]
GVD[Real-time Gaze Vector Display]
GCW[Gaze Calibration Window]
STW[Ongoing Screen Time Widget]
NAM[Notification Alert Message Box]
end
subgraph Backend
CL[Core Logic]
GDM[Gaze Detection Engine]
GVC[Gaze Vector Calibration]
EGT[Eye Gaze Time Tracker]
BNS[Break Notification System]
end
subgraph Data
DS[Data Storage]
UP[User Preferences]
CD[Calibration Data]
UM[Usage Metrics]
end
UI -->|User Input| CL
CL -->|Processed Data| UI
CL -->|Store/Fetch Data| DS
DS -->|Send Data| CL
style UI fill:#f0f9ff,stroke:#0275d8,stroke-width:2px
style GVD fill:#f0f9ff,stroke:#0275d8,stroke-width:1px
style GCW fill:#f0f9ff,stroke:#0275d8,stroke-width:1px
style STW fill:#f0f9ff,stroke:#0275d8,stroke-width:1px
style NAM fill:#f0f9ff,stroke:#0275d8,stroke-width:1px
style CL fill:#fff3cd,stroke:#ffb22b,stroke-width:2px
style GDM fill:#fff3cd,stroke:#ffb22b,stroke-width:1px
style GVC fill:#fff3cd,stroke:#ffb22b,stroke-width:1px
style EGT fill:#fff3cd,stroke:#ffb22b,stroke-width:1px
style BNS fill:#fff3cd,stroke:#ffb22b,stroke-width:1px
style DS fill:#f2dede,stroke:#d9534f,stroke-width:2px
style UP fill:#f2dede,stroke:#d9534f,stroke-width:1px
style CD fill:#f2dede,stroke:#d9534f,stroke-width:1px
style UM fill:#f2dede,stroke:#d9534f,stroke-width:1px
-
Client (UI)
- User Interface (UI): The main interface through which users interact with the application.
- Real-time Gaze Vector Display (GVD): Displays the user's real-time gaze vector.
- Gaze Calibration Window (GCW): Window for calibrating the gaze detection system.
- Ongoing Screen Time Widget (STW): Widget showing the ongoing screen time.
- Notification Alert Message Box (NAM): Box for displaying notifications and alerts.
-
Backend
- Core Logic (CL): Central module that processes user input and manages the flow of data.
- Gaze Detection Engine (GDM): Engine responsible for detecting and processing gaze vectors.
- Gaze Vector Calibration (GVC): Handles the calibration of gaze vectors.
- Eye Gaze Time Tracker (EGT): Tracks the amount of time the user's gaze is on the screen.
- Break Notification System (BNS): Manages notifications to prompt the user to take breaks.
-
Data
- Data Storage (DS): Central repository for storing all data.
- User Preferences (UP): Stores user-specific preferences and settings.
- Calibration Data (CD): Holds data related to the calibration of the gaze detection system.
- Usage Metrics (UM): Keeps track of usage statistics and metrics.
The VisionGuard Backend leverages the OpenVINO model zoo to estimate a user's gaze and calculate the accumulated screen gaze time. The following networks are integral to the backend:
This model identifies the locations of faces within an image. You can choose from the following networks:
This model estimates the head pose in Tait-Bryan angles. It outputs yaw, pitch, and roll angles in degrees, which serve as inputs for the gaze estimation model. The following network can be used:
This model estimates the coordinates of facial landmarks for detected faces. Keypoints at the corners of the eyes are used to locate the eye regions required for the gaze estimation model. You can choose from:
This model determines the open or closed state of the eyes in detected faces. The following model can be used:
This model takes three inputs: square crops of the left and right eye images, and three head pose angles (yaw, pitch, and roll). It outputs a 3-D vector representing the direction of a person’s gaze in a Cartesian coordinate system. The following network is used:
graph TD
A[Image Input] --> B[Face Detection]
B --> |Face Image| C[Facial Landmark Detection]
B --> |Face Image| D[Head Pose Estimation]
C --> E[Eye State Estimation]
D --> |Head Pose Angles| F[Gaze Estimation]
C --> |Eye Image| F
E --> |Eye State| F
F --> |Gaze Vector|G[Gaze Time Estimation]
G --> H[Accumulate Screen Gaze Time]
%% Styling
style B fill:#FFDDC1,stroke:#333,stroke-width:2px
style C fill:#FFDDC1,stroke:#333,stroke-width:2px
style D fill:#FFDDC1,stroke:#333,stroke-width:2px
style E fill:#FFDDC1,stroke:#333,stroke-width:2px
style F fill:#FFDDC1,stroke:#333,stroke-width:2px
style G fill:#FFDDC1,stroke:#333,stroke-width:2px
style A fill:#C1E1FF,stroke:#333,stroke-width:2px
style H fill:#C1E1FF,stroke:#333,stroke-width:2px