This demo provides an overview of the following capabilities:
Detection of faces in camera feed, video files, or RTSP streams.
Tracking and re-identification of faces, each associated with a unique ID. ( for more information see this page: Face Tracker)
Placement of facial and eye landmarks. ( for more information see this page: Face and Eye Landmark Detector)
Estimation of eye openness.
Measurement of pupil diameter.
Calculation of the head direction vector.
Calculation of the eye gaze vector.
(Related: Driver Monitoring, Driver Fatigue Detector, Driver Distraction Detector, Head Gaze Tracker, Eye Gaze Tracker)
Instructions for the demo usage:
Extract the contents of the provided file to a location of your choice on your computer.
Run the start.bat file to initiate the demo. By default, the program seeks out and uses the primary camera feed. To specify alternative video sources or save the output to a video file, you may modify the start.bat file.
To process feeds from different cameras, alter the start.bat file, replacing the default camera ID (0) with your desired camera ID, video path, or RTSP URL.
Examples:
To exit the program at any time, press the ESC key.
Output Example:
Explanation:
1. Normalised and rotated image of the right and left eye, showing iris and pupil segmentation
2.a. Head direction vector in Euler angles
2.b. Visual representation of the direction of the head
3.a. Vector of the eye direction in Euler angles. Roll is meaningless for the eye, so the demo does not show it. Also, the demo only calculatesthese angles for the right eye now.
3.b. Visual representation of the direction of the eye
4. Openness of the right and left eye (normalised values, min:0 - max:1)
5. Running speed of demo
The demo video was recorded on a HP Laptop 15-DA0042NH (Processor: Intel(R) Core(TM) i7-8550U CPU, RAM: 8 Gb).
It used 500 Mb RAM and the CPU usage was 65% during the recording.
The input video was captured using a Xiaomi CMSXJ22A web camera. The input resolution was 1080p.
During recording, the system processing speed was stable above 40 FPS. When processing a single face, the system can maintain this speed on this hardware. When processing multiple faces, the system may be slower.
The system is written entirely in C++ and uses the following libraries/technologies: