Skip to content

Convert from Basel Face Model (BFM) to the FLAME head model

Notifications You must be signed in to change notification settings

libingzeng/BFM_to_FLAME

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Convert from Basel Face Model (BFM) to FLAME

This repository demonstrates

  1. how to create a FLAME texture model from the BFM vertex color space, and
  2. how to convert a BFM mesh to a FLAME mesh.

About FLAME

FLAME is a lightweight and expressive generic head model learned from over 33,000 of accurately aligned 3D scans. Public FLAME related repositories:

Setup

Install pip and virtualenv

sudo apt-get install python3-pip python3-venv

Clone the git project:

git clone https://github.com/TimoBolkart/BFM_to_FLAME.git

Set up and activate virtual environment:

mkdir <your_home_dir>/.virtualenvs
python3 -m venv <your_home_dir>/.virtualenvs/BFM_to_FLAME
source <your_home_dir>/.virtualenvs/BFM_to_FLAME/bin/activate

Make sure your pip version is up-to-date:

pip install -U pip

Install requirements

pip install numpy==1.19.4
pip install h5py==3.1.0
pip install chumpy==0.70 
pip install opencv-python==4.4.0.46

Create texture model

Download BFM 2017 (i.e. 'model2017-1_bfm_nomouth.h5') from here and place it in the model folder. Download inpainting masks from here and place it in the data folder.

Running

python col_to_tex.py

outputs a 'FLAME_albedo_from_BFM.npz' in the output folder. This file can be used with several FLAME-based repositories like TF_FLAME or FLAME photometric optimization.

Convert meshes

Install mesh processing libraries from MPI-IS/mesh within the virtual environment. Download FLAME from here and place it in the model folder.

Running

python mesh_convert.py

outputs a FLAME mesh for a specified BFM mesh. The demo supports meshes in 'BFM 2017', 'BFM 2009', or 'cropped BFM 2009' (i.e. as used by 3DDFA) topology.

Citing

When using this code, the generated texture space, or FLAME meshes in a scientific publication, please cite

@article{FLAME:SiggraphAsia2017,
  title = {Learning a model of facial shape and expression from {4D} scans},
  author = {Li, Tianye and Bolkart, Timo and Black, Michael. J. and Li, Hao and Romero, Javier},
  journal = {ACM Transactions on Graphics, (Proc. SIGGRAPH Asia)},
  volume = {36},
  number = {6},
  year = {2017},
  url = {https://doi.org/10.1145/3130800.3130813}
}

When using the converted texture space, please further follow the license agreement of the BFM model as specified here.

Acknowledgement

We thank the authors of the BFM 2017 model for making the model publicly available.

About

Convert from Basel Face Model (BFM) to the FLAME head model

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%