/CaricatureFace

The source code for paper "Landmark Detection and 3D Face Reconstruction for Caricature using a Nonlinear Parametric Model".

Primary LanguageJupyter Notebook

CaricatureFace

This repository includes source code, pretrained model and a 3D dataset of paper "Landmark Detection and 3D Face Reconstruction for Caricature using a Nonlinear Parametric Model", Graphical Models (2021), http://arxiv.org/abs/2004.09190.

Authors: Hongrui Cai, Yudong Guo, Zhuang Peng and Juyong Zhang.

Note that all of the code is protected under patent. It can be only used for research purposes. If you are interested in business purposes/for-profit use, please contact Juyong Zhang (the corresponding author, email: juyong@ustc.edu.cn).

examples

Update Logs:

April 28, 2021

  • Add an introduction (.pdf file) for our research work.

January 3, 2021

  • Make the entire 3D caricature dataset public! And attach the scripts for visualization!

December 5, 2020

  • Update the examples and add a figure for exhibition.

August 26, 2020

  • Add a method for computing the dynamical contour indices.

July 20, 2020

  • Add a method for calculating errors.

May 9, 2020

  • Add a toy example for conversion between 3D face and vertices.

April 22, 2020

  • The testset is enlarged.

April 8, 2020

  • The source code, pretrained model and some data from testset are released.

3D Caricature Dataset

You can download the 3D caricature dataset we constructed via Google Drive, or Baidu Drive with password: 0nk6. The 3D caricature dataset contains 7,800 2D caricatures, 2D landmarks and 3D meshes. We also attach the scipts for visualization.

Comparison with us

If you want to do some comparison with our method, you can download a testset here Google Drive, or Baidu Drive with password: 4nvs. It includes 2D caricatures, groundtruth 68 landmarks, 68 landmarks detected by our method and 3D meshes recovered by our method.

Prerequisites and Installation

  • Python 3.7
  • Pytorch 1.4.0
  • opencv-python 3.4.2

Getting Started

Clone this repository:

git clone git@github.com:Juyong/CaricatureFace.git
cd CaricatureFace

Install dependencies using Anaconda:

conda create -n cariface python=3.7
source activate cariface
pip install -r requirements.txt

Advanced Work

Prepare related data:

  • You can download related data for alogorithm here Google Drive, or Baidu Drive with password: tjps.
  • Unzip downloaded files and move files into ./data directory.

Prepare pretrained model:

  • You can download pretrained model here Google Drive, or Baidu Drive with password: fukf.
  • Unzip downloaded files and move files into ./model directory.

Prepare some examples:

  • You can download some examples here Google Drive, or Baidu Drive with password: sq06.
  • Unzip downloaded files and move files into ./exp directory.

Test with Pretrained Model

Within ./CaricatureFace directory, run following command:

   bash test.sh

Note: Input images must be preprocessed - crop the whole face roughly and resize to size (224, 224).

Recover 3D faces

Please follow README.txt in ./toy_example directory.

Compute the dynamical contour indices

Please follow README.txt in ./update_contour directory.

Gallery

examples

Citation

If you find this useful for your research, please cite the paper:

@article{Cai2021Caricature,
  author    = {Hongrui Cai and
               Yudong Guo and
               Zhuang Peng and
               Juyong Zhang},
  title     = {Landmark Detection and 3D Face Reconstruction for Caricature using a Nonlinear Parametric Model},
  journal   = {Graphical Models},
  volume    = {115},
  year      = {2021}
}