/3d_Reconstruction_PRNet

This repository contains code for the experimentation that I did to test the pre-trained model provided in PRNet.

Primary LanguagePythonMIT LicenseMIT

Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network

This is an un-official python implementation of PRN. I have made some changes in the original code and then used the model to experiment with it and get to know the results.

PRN is a method to jointly regress dense alignment and 3D face shape in an end-to-end manner. More examples on Multi-PIE and 300VW can be seen in YouTube .

The main features are:

  • End-to-End our method can directly regress the 3D facial structure and dense alignment from a single image bypassing 3DMM fitting.

  • Multi-task By regressing position map, the 3D geometry along with semantic meaning can be obtained. Thus, we can effortlessly complete the tasks of dense alignment, monocular 3D face reconstruction, pose estimation, etc.

  • Faster than real-time The method can run at over 100fps(with GTX 1080) to regress a position map.

  • Robust Tested on facial images in unconstrained conditions. Our method is robust to poses, illuminations and occlusions.

Applications

Basics(Evaluated in paper)

  • Face Alignment

Dense alignment of both visible and non-visible points(including 68 key points).

And the visibility of points(1 for visible and 0 for non-visible).

  • 3D Face Reconstruction

Get the 3D vertices and corresponding colours from a single image. Save the result as mesh data(.obj), which can be opened with Meshlab or Microsoft 3D Builder. Notice that, the texture of non-visible area is distorted due to self-occlusion.

New:

  1. you can choose to output mesh with its original pose(default) or with front view(which means all output meshes are aligned)
  2. obj file can now also written with texture map(with specified texture size), and you can set non-visible texture to 0.

Steps to run the repository

-Follow the steps mentioned in the docx File.

Acknowledgements