Detecting Face Orientation

This project deals with the problem of Detecting Face Orientation from a video input.

Abstract
This project deals with the problem of Detecting Face Orientation from a video input.
The system’s goal is to determinate the angles of the face orientation in each frame, meaning tracking the 3D face orientation from the 2D input.
We first find the basic face orientation in terms of right, left, up, down, according to Eigen Faces method. We use that classification to limit the search area for the eyes and nose.
After finding 3 points: 2 eyes and nose, we calculate the horizontal and vertical angles of the head, which describe the face orientation in 3D.
The system uses efficient algorithms that can be implemented in Real Time systems.
Background
Similar previous projects presented a method in which the orientation was classified to 3 basic directions of center, right, left according to the Eigen Faces method only. Other projects use special feature extraction, but don’t achieve reliable results due to false feature detection.
In this project the basic directions were expanded to center, up, down, left, left45, right, right45. More accurate results are achieved by geometric methods based on special feature extraction.
3 points (eyes and nose) are detected using pattern matching and blob analysis.
The search area is limited by our initial classification to basic directions, which helps to avoid false feature detection.
After determining the 3 points, the angles which describe the face orientation in 3D can be calculated using simple geometry.

Uses of the system: tracking the 3D face orientation of drivers, pilots, etc…
Block diagram
1

Example of the system’s process and output

2
Detailed explanation can be found inside the project report.
Tools
The images were taken in a digital video camera.
Editing was done by Premiere.
Our work environment was Matlab 6.5.

Conclusions
The following statistics describes the results of 49 exam images.

correctdetection incorrectdetection inaccuratedetection
80% 10% 10%

inaccurate detection refers to inexact angles calculation which is caused by inaccurate recognition of the eyes.

incorrect detection refers to the following cases:

  • image with face down ,in which the nostrils are not found.
  • a wrong initial orientation
  • image with face up in a sharp way

 

We can see that the system gives good results in most cases, except for several cases which are mentioned above.

It is important to mention that in most cases of incorrect detection the system is capable to recognize it (by comparing it to previous frame for example) so it skips this frame and takes the next frame instead.

Acknowledgment
We are grateful to our project supervisor Asaf Cohen for his help and guidance throughout this work. We are also grateful to the lab’s stuff and to the Ollendorff Minerva Center Fund who supported this project.