Skip to content
/ face3d Public

Python tools for 3D face: 3DMM, Mesh processing(transform, camera, light, render), 3D face representations.

Notifications You must be signed in to change notification settings

yfeng95/face3d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

face3d: python tools for processing 3d face

Introduction

I organize this repo just for fun & my personal research use.

Hope this helps and you can enjoy it. : )

Structure

# Since triangle mesh is the most popular representation of 3D face, the main part is mesh processing.
mesh/             # written in python(numpy)
|  io.py                 # read & write obj
|  vis.py                # plot mesh
|  transform.py          # transform mesh & estimate matrix
|  light.py              # add light & estimate light(to do)
|  render.py             # obj to image using rasterization render

# When can not use vercorization to optimize, loop in python is too slow to use. So write core parts(loop) in c++, then use cython to compile it.
mesh_cython/      # written in c++(cython)
|  render.py             # the same API as in mesh/render.py, with faster speed.
|  light.py              # the same API as in mesh/light.py, with faster speed.
|  mesh_core*            # c++ codes of core parts.

# 3DMM is one of the most popular methods to generate & reconstruct 3d face.
morphabel_model/  # witten in python(numpy)
|  morphable_model.py    # morphable model class: generate & fit
|  fit.py                # estimate shape&expression parameters. 3dmm fitting.
|  load.py               # load 3dmm data

Examples:

  • 3dmm. run examples/2_3dmm.py

    left: random examples generated by 3dmm

    right: 3d face generated by fitted 3dmm&pose parameters using 68 key points

  • transform. python examples/3_transform.py

  • light. python examples/4_light.py

  • image map python examples/6_image_map.py

  • uv map python examples/7_uv_map.py

Getting Started

Prerequisite

  • Python 3+ (numpy, skimage, scipy)

  • Python packages:

    • numpy
    • skimage (for reading&writing image)
    • scipy (for loading mat)
    • Cython (for compiling c++ files)
  • BFM Data

    see Data/BFM/readme.md

Usage

  1. Clone the repository
git clone https://github.com/YadiraF/face3d
cd face3d
  1. Compile c++ files(ignore if you use numpy version)
cd face3d/mesh_cython
python setup.py build_ext -i 
  1. Run examples

About

Python tools for 3D face: 3DMM, Mesh processing(transform, camera, light, render), 3D face representations.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published