This is a MXNet/Gluon Implementation of End-to-end 3D Face Reconstruction with Deep Neural Networks.

  1. Download VGG-Face and convert it to the mxnet-weights by running the caffe_converter:

    python $MXNET/tools/caffe_converter/ prototxt weights params_name

    Put the weights into the folder ckpt/VGG-Face

  2. Prepare the dataset

  3. For train your dataset, you may need to change the dataset in the main code to fit your dataset

  4. Run the code:

    # fine-tune the branch and fully connected layers
    python --pretrained --freeze --epoch 10
    # fine-tune whole network
    python --start_epoch 10

If you use this code, pls mention this repo and cite the paper:

author = {Dou, Pengfei and Shah, Shishir K. and Kakadiaris, Ioannis A.},
title = {End-To-End 3D Face Reconstruction With Deep Neural Networks},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {July},
year = {2017}

Known issues

dataloader is very slow and cannot make fully usage of GPU training. You can use record io to pack the image and do more augmentation.