Home

Awesome

POSEidon: Face-from-Depth for Driver Pose Estimation

Implementation in Keras and Theano of my paper published in CVPR 2017 (Borghi G., Venturelli M., Vezzani R., Cucchiara R.).

How To

Configuration

The model has been tested with the following configuration:

Dataset (Biwi)

In order to run the code, it is necessary download the dataset from here and following these steps:

It is necessary create the Motion Images (through the Farnerback algorithm) and the reconstructed grey images from the corresponding depth ones. In the Dataset directory you can find one test sequence with these types of data. We plan to release the complete dataset in the next future.

<p align="center"> <img src="https://github.com/gdubrg/POSEidon-Biwi/blob/master/Dataset/face_dataset_large/11/frame_00003_face_depth.png" width="100" /> <img src="https://github.com/gdubrg/POSEidon-Biwi/blob/master/Dataset/face_dataset_ae/11/frame_00003_face_gray.png" width="100" /> <img src="https://github.com/gdubrg/POSEidon-Biwi/blob/master/Dataset/face_dataset_OF/11/frame_00004_face_OF.png" /> </p>

Train and Test

The command to train the network is

python3 train.py

and to test is

python3 test.py

and finally plot_error to plot the error and some graph. For both, you must pass the following arguments:

Results

Input cropping is done using the ground truth head position.

PitchRollYawAvg
1.6 +/- 1.71.8 +/- 1.81.7 +/- 1.51.7 +/- 1.7

Note

Keras version

If you do not use Keras 1.0.6, scripts will run but thay will not produce the same reults reported in the original paper.

Path

In the code are present some hardcoded paths, at the beginning of train and test scripts.