Head Pose Database | Database Building | Data | ICME 05 Set Up | People

In October 2003 a head pose video database was built at the Idiap research institute . The objective was to construct a video database allowing to perform quantitative evaluation of algorithms extracting information related to the head pose of people, such as head tracking and pose estimation algorithms, or focus of attention analysis. Such a database did not exist before (at least publicly). By making our database publicly available to researchers, rigorous algorithm comparisons will be allowed.
The database comprises two sets of video involving people engaged in natural activities. In the first one, people are participating in meetings and are debating statements displayed on a screen. In the second set, persons are performing some tasks in their office. In all cases, the head pose of people is continuously annotated thanks to the use of a 3D location and orientation magnetic trackers called flock of birds. In both sets, the head pose of 16 different persons has been recorded.
This database building was done in the context of two projects.

Two common indoor environments were selected for our database: a meeting room (left image) and an office (right image). The two set ups were the following.
In the following, we describe the main elements to obtain the pose annotation. More details can be found in the following report.
In our data, the annotated head pose was defined relatively to the camera 3D basis and a reference head pose called frontal pose. First, a 3D reference coordinate system is rigidly attached to the head, with the following basis axes: the x axis is defined by the line between the two eyes, the y axis is defined by the vertical line going through the nose in a frontal view of the face, and the z axis is orthogonal to the x and y axis. Additionally, the head in an image is said to be in a frontal pose when it's head reference basis is aligned to the 3D camera reference basis at the head image position. Given these definitions, the annotated head pose of a viewed head is defined by the Euler angles parameterizing the rigid transformation allowing to pass from the virtual frontal head basis configuration to the real head configuration of the viewed head in the current image.
Several euler decompositions can be exploited. In the most common one, however, the rotation angle around the y axis is called the head pan, the rotation angle around the x axis is called the head tilt and the rotation angle around the z axis is called the head roll. The initial head pose labeling was done using a magnetic sensor called flock of bird (FOB) from Ascension Technology. The FOB is composed of two components: a reference base (usually fixed on the table), and the birds, that we rigidly tied to the head. The FOB device then outputs the Euler angles of the bird relatively to its reference basis. To obtain the head pose annotated as described above, two transformations involving calibration were necessary:
Because the starting time of the FOB and the video recordings were different, we needed to first align the FOB and video data. This was achieved by identifying the timestamps of sudden changes of head poses in both modalities. By extracting several timestamps corresponding pairs, we were able to precisely estimate the time offset between the two recordings.
Each recording in the meeting room always involves two persons sitting in front of the camera. The person to the right of the image will be labeled RightPerson and the person to the left will be labeled LeftPerson. The data of these recordings are stored in 8 directories MEETING1,...,MEETING8. Each directory MEETING[MeetingNum] (MeetingNum=1,...,8) contains:
The recordings in the office involved 15 people, one per recording. The Data of these recordings are stored in the directories OFFICE01,...OFFICE15. However, as all the necessary calibration have not been done yet, these are unavailable now. If you still want these recordings, please email us (see contacts)
The video frames of the recordings were extracted using mplayer. Given a movie my_movie.avi the command line is:
mplayer -ss 00:00:00 -vo jpeg -vf scale=360:288 my_movie.avi
this command extract all the jpg image frames of my_movie.avi in the current folder at a resolution 360:288.
In our paper
Evaluation of Multiple Cues Head Pose Estimation Algorithms in Natural Environments
Sileye Ba and Jean-Marc Odobez [pdf file]
in Proceedings of the International Conference on Multi-media & Expo (ICME), Amsterdam, 2005
We ran experiments to compare two classes of head pose tracking algorithm: a first class where the head tracking and the pose estimation are performed one after the other, and a second class where the head tracking and pose estimation are optimized jointly. The evaluation data and the errors measures are given in the following.
Evaluation Data:
The tracking evaluation protocol is the following. For our experiments we use half of the persons of the meeting database as train set to train pose dynamic model and the half remaining persons as test set to evaluate the tracking algorithms. In each one of the recording of the 8 persons of the test set, we selected 1 minute of recording (1500 video frames) for evaluation data. We decided to use only one minute to save machine computation time, as we use a quite slow matlab implementation of our algorithms. Video frames corresponding to training and test data are given in the following table:
Traning Data | Test Data | ||
Recording | Video Frames | Recording | Video Frames |
Meeting 3 L | 6001-7500 | Meeting 1 R | 1-1500 |
Meeting 4 L | 13501-15000 | Meeting 1 L | 4051-6000 |
Meeting 5 L | 13501-15000 | Meeting 2 R | 1501-3000 |
Meeting 6 R | 12001-13500 | Meeting 2 L | 6001-7500 |
Meeting 6 L | 7501-9000 | Meeting 3 R | 9001-10500 |
Meeting 7 R | 6001-7500 | Meeting 4 R | 9001-10500 |
Meeting 7 L | 18001-18500 | Meeting 5 R | 9001-10500 |
Meeting 8 R | 7501-9000 | Meeting 8 L | 16501-18000 |
In this paragraph, we define the head pose estimation error measures used to evaluate tracking performances. A head pose defines a vector in the 3D space, the vector indicating where the head is pointing at. It can be thought of as a vector based on the center of the head and passing through the nose. It is worth noticing that in the Pointing representation, this vector depends only on the head pan and tilt angles. The angle between the 3D pointing vector defined by the head pose ground truth (GT) and the head pose estimated by the tracker can be used as the first pose estimation error measure. In order to have more details about the origins of the errors we will also measure the individual errors made separately on the pan, tilt and roll angles measured in the Pointing representation. For each one of the four error measures, we compute the mean, standard deviation, and median value of the absolute value of the errors. These set of errors measures can be computed using functions available in the folder ROUTINES of the database (HeadPosetrackingErr.m).
For information about the database, please contact:
Dr Jean Marc Odobez, Senior Researcher