top of page


This demo provides an overview of the following capabilities:

  1. Detection of faces in camera feed, video files, or RTSP streams.

  2. Tracking and re-identification of faces, each associated with a unique ID. ( for more information see this page:  Face Tracker )

  3. Placement of facial and eye landmarks. ( for more information see this page:  Face and Eye Landmark Detector )

  4. Estimation of eye openness.

  5. Measurement of pupil diameter.

  6. Calculation of the head direction vector.

  7. Calculation of the eye gaze vector.

(Related: Driver Monitoring, Driver Fatigue Detector, Driver Distraction Detector, Head Gaze Tracker, Eye Gaze Tracker)

Instructions for Usage:

  1. Extract the contents of the provided file to a location of your choice on your computer.

  2. 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.


Command: DMS.exe 0

Effect: The program accesses and processes the primary camera feed.


Command: DMS.exe 1

Effect: If multiple cameras are connected to your PC, this command allows the program to access and process the secondary camera feed.


Command: DMS.exe "C://demo/test.mp4"

Effect: This command prompts the program to access and process a specific video file.


Command: DMS.exe "C://demo/test.mp4" "C://demo/output.mp4"

Effect: By specifying a second path in the command line argument, you can save the processing results to an output video file. The program will then create and populate this file with the processed video output.


Command: DMS.exe "rtsp://"

Effect: The program is capable of accessing and processing other video sources, including RTSP or MJPEG streams.

To exit the program at any time, press the ESC key.


Output Examples:



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 calculates these 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:

bottom of page