Coder Social home page Coder Social logo

liuguoyou / sdu-face-alignment Goto Github PK

View Code? Open in Web Editor NEW

This project forked from deepinx/deep-face-alignment

0.0 4.0 0.0 12.12 MB

The MXNet Implementation of Paper: Stacked Dense U-Nets with Dual Transformers for Robust Face Alignment

Python 98.87% Shell 1.13%

sdu-face-alignment's Introduction

Stacked Dense U-Nets for Face Alignment

The Mxnet implementation of the most recent state-of-the-art 2D and 3D face alignment method Stacked Dense U-Nets with Dual Transformers for Robust Face Alignment at BMVC or link at Arxiv. This proposed stacked dense U-Nets (SDU-Net) with dual transformers can get the normalised mean error (NME) of 6.73% and 5.55% respectively on IBUG and COFW datasets for 2D face alignment. For 3D face alignment, this method further decreases the NME by 5.8% with former state-of-the-art method (HPM) proposed by Bulat et al on AFLW2000-3D.

Some popular heatmap based approaches like stacked hourglass are also provided in this repository.

The training/validation dataset and testset are in below table:

Data Download Link Description
bmvc_sdu_data2d.zip BaiduCloud or GoogleDrive, 490M 2D training/validation dataset and IBUG, COFW, 300W testset
bmvc_sdu_data3d.zip BaiduCloud or GoogleDrive, 1.54G 3D training/validation dataset and AFLW2000-3D testset

The performances of pre-trained models are shown below. Accuracy is reported as the Normalised Mean Error (NME). To facilitate comparison with other methods on these datasets, we give mean error normalised by the diagonal of the ground truth bounding box and the eye centre distance.

Model Model Size IBUG (68 pts) COFW (68 pts) 300W (68 pts) Download Link
Hourglass2-CAB (# 3) 37MB 1.891/7.207 1.962/6.125 1.651/5.792 BaiduCloud or GoogleDrive

Note: More pretrained models will be added soon.

Environment

This repository has been tested under the following environment:

  • Python 2.7
  • Ubuntu 18.04
  • Mxnet-cu90 (==1.3.0)

Training

  1. Prepare the environment.

  2. Clone the repository.

  3. Download the training/validation dataset and unzip it to your project directory.

  4. You can define different loss-type/network structure/dataset in config.py(from sample_config.py).

  5. You can use CUDA_VISIBLE_DEVICES='0' train.py --network sdu to train SDU-net or CUDA_VISIBLE_DEVICES='0' train.py --network hourglass to train stacked hourglass network. Instead, you can also edit train.sh and run sh ./train.sh to train your models.

Testing

  • Download the pre-trained model and place it in ./model_2d/ or ./model_3d/.

  • You can use python test.py to test this alignment method.

Results

2D Alignment Results

License

MIT LICENSE

Reference

@article{guo2018stacked,
  title={Stacked Dense U-Nets with Dual Transformers for Robust Face Alignment},
  author={Guo, Jia and Deng, Jiankang and Xue, Niannan and Zafeiriou, Stefanos},
  journal={arXiv preprint arXiv:1812.01936},
  year={2018}
}

Acknowledgment

The code is adapted based on an intial fork from the insightface repository.

sdu-face-alignment's People

Contributors

deepinx avatar

Watchers

James Cloos avatar 刘国友 avatar  avatar paper2code - bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.