All Projects â†’ AaronJackson â†’ Vrn

AaronJackson / Vrn

Licence: mit
👨 Code for "Large Pose 3D Face Reconstruction from a Single Image via Direct Volumetric CNN Regression"

Programming Languages

shell
77523 projects
matlab
3953 projects
python
139335 projects - #7 most used programming language
lua
6591 projects
TeX
3793 projects

Projects that are alternatives of or similar to Vrn

Deca
DECA: Detailed Expression Capture and Animation
Stars: âś­ 292 (-93.35%)
Mutual labels:  3d, face, reconstruction
Extreme 3d faces
Extreme 3D Face Reconstruction: Looking Past Occlusions
Stars: âś­ 653 (-85.13%)
Mutual labels:  3d, face, reconstruction
Prnet
Joint 3D Face Reconstruction and Dense Alignment with Position Map Regression Network (ECCV 2018)
Stars: âś­ 4,479 (+2%)
Mutual labels:  3d, face, reconstruction
Volumetriccapture
A multi-sensor capture system for free viewpoint video.
Stars: âś­ 243 (-94.47%)
Mutual labels:  3d, reconstruction
Tf flame
Tensorflow framework for the FLAME 3D head model. The code demonstrates how to sample 3D heads from the model, fit the model to 2D or 3D keypoints, and how to generate textured head meshes from Images.
Stars: âś­ 193 (-95.6%)
Mutual labels:  3d, face
Pulse
A pendant to warn you when you touch your face
Stars: âś­ 229 (-94.78%)
Mutual labels:  3d, face
Synthesize3dviadepthorsil
[CVPR 2017] Generation and reconstruction of 3D shapes via modeling multi-view depth maps or silhouettes
Stars: âś­ 141 (-96.79%)
Mutual labels:  3d, reconstruction
gryds
A Python package for geometric transformations of images for data augmentation in deep learning
Stars: âś­ 55 (-98.75%)
Mutual labels:  deeplearning, computervision
realtime-2D-to-3D-faces
Reconstructing real-time 3D faces from 2D images using deep learning.
Stars: âś­ 92 (-97.9%)
Mutual labels:  face, reconstruction
Groundbreaking-Papers
ML Research paper summaries, annotated papers and implementation walkthroughs
Stars: âś­ 90 (-97.95%)
Mutual labels:  deeplearning, computervision
Multi-Face-Comparison
This repo is meant for backend API for face comparision and computer vision. It is built on python flask framework
Stars: âś­ 20 (-99.54%)
Mutual labels:  face, deeplearning
Solaris
CosmiQ Works Geospatial Machine Learning Analysis Toolkit
Stars: âś­ 290 (-93.4%)
Mutual labels:  deeplearning, computervision
3d Iwgan
A repository for the paper "Improved Adversarial Systems for 3D Object Generation and Reconstruction".
Stars: âś­ 166 (-96.22%)
Mutual labels:  3d, reconstruction
Flame pytorch
This is a implementation of the 3D FLAME model in PyTorch
Stars: âś­ 153 (-96.52%)
Mutual labels:  3d, face
Monk object detection
A one-stop repository for low-code easily-installable object detection pipelines.
Stars: âś­ 437 (-90.05%)
Mutual labels:  deeplearning, computervision
Jeelizfacefilter
Javascript/WebGL lightweight face tracking library designed for augmented reality webcam filters. Features : multiple faces detection, rotation, mouth opening. Various integration examples are provided (Three.js, Babylon.js, FaceSwap, Canvas2D, CSS3D...).
Stars: âś­ 2,042 (-53.5%)
Mutual labels:  3d, face
Nearest-Celebrity-Face
Tensorflow Implementation of FaceNet: A Unified Embedding for Face Recognition and Clustering to find the celebrity whose face matches the closest to yours.
Stars: âś­ 30 (-99.32%)
Mutual labels:  face, deeplearning
Pixel2mesh
Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images. In ECCV2018.
Stars: âś­ 997 (-77.29%)
Mutual labels:  3d, reconstruction
Uav Mapper
UAV-Mapper is a lightweight UAV Image Processing System, Visual SFM reconstruction or Aerial Triangulation, Fast Ortho-Mosaic, Plannar Mosaic, Fast Digital Surface Map (DSM) and 3d reconstruction for UAVs.
Stars: âś­ 106 (-97.59%)
Mutual labels:  3d, reconstruction
MTMT
Code for the CVPR 2020 paper "A Multi-task Mean Teacher for Semi-supervised Shadow Detection"
Stars: âś­ 66 (-98.5%)
Mutual labels:  deeplearning, computervision

Large Pose 3D Face Reconstruction from a Single Image via Direct Volumetric Regression

Aaron S. Jackson, Adrian Bulat, Vasileios Argyriou and Georgios Tzimiropoulos

Try out the code without running it! Check out our online demo here. Alternatively, pull the DockerHub image `asjackson:vrn`, see docs in the vrn-docker repo.

http://aaronsplace.co.uk/papers/jackson2017recon/preview.png

Please visit our project webpage for a link to the paper and an example video run on 300VW. This code is licenses under the MIT License, as described in the LICENSE file.

This is an unguided version of the Volumetric Regression Network (VRN) for 3D face reconstruction from a single image. This method approaches the problem of reconstruction as a segmentation problem, producing a 3D volume, spatially aligned with the input image. A mesh can then be obtained by taking the isosurface of this volume.

Several example images are included in the examples folder. Most of these are AFLW images taken from 3DDFA.

If you are running the code to calculate error for a potential publication, please use the MATLAB version, as this is what was used to compute the error for the paper.

Prebuilt Docker Image for CPU version

I have released an image on Docker Hub which has everything to get the CPU version running under Docker. I’ll extend this to have CUDA support at some point.

docker pull asjackson/vrn:latest
docker run -v $(pwd)/data:/data:Z vrn /runner/run.sh /data/turing.jpg

The repo holding this is available at vrn-docker and the models (which have been cast to CPU floats already) were stored in Git LFS but took too much space. If you have an issue with this docker container, please use the vrn-docker issue tracker rather than the vrn issue tracker.

Software Requirements

A working installation of Torch7 is required. This can be easily installed on most platforms using torch/distro. You will also require a reasonable CUDA capable GPU.

This project was developed under Linux. I have no idea if it will work on Windows and it is unlikely that I will be able to help you with this. If you are running Mac OS, issue #1 might be of interest to you.

Quick overview of requirements:

  • Torch7 (+ nn, cunn, cudnn, image). See “Installation Example” below.
  • NVIDIA GPU, with a working CUDA (7.5 or 8.0) and CuDNN (5.1).
  • Either,
    • MATLAB
    • bash, ImageMagick, GNU awk, Python 2.7 (+ visvis, imageio, numpy)

Please be wary of the version numbers for CUDA, CuDNN and Python.

Bulat’s face alignment code is included as a submodule. Please check his README for dependencies.

Getting Started

git clone --recursive https://github.com/AaronJackson/vrn.git
cd vrn
./download.sh

Running with MATLAB

MATLAB offers better functionality for taking the iso surface of the volume. It also has some code to calculate per-vertex colouring on the mesh. If you have MATLAB I recommend this route.

To run, type “run” from MATLAB.

Running with Python

No longer is MATLAB an absolute requirement! I’ve included a slightly crazy (but don’t worry, I had fun writing it) shell script which performs the face normalisation, and runs the vis.py script to render the regressed volume.

Unfortunately this does not yet apply any colouring or texture to the mesh (you’re welcome to contribute) and it has some issues if you don’t have a fully working OpenGL setup. Some GPUs won’t like the background image not being a power of two, so it might make the results look odd. I’ll work on this sometime.

To run it on the included example images without MATLAB, make the run.sh executable with chmod u+x run.sh and type ./run.sh from your terminal.

Using your own images

You are, of course, welcome to try out this method on your own set of images. dlib, the face detector included with Bulat’s face alignment code struggles to find side poses. You are welcome to modify the code to provide bounding boxes.

Available Options

The MATLAB “run.m” script contains a few options which you can change. Here is a very quick description of them:

  • input_folder, as the name suggests, the folder to glob for JPEG images.
  • output_folder, the directory to store the regressed volumes.
  • model_file, the name of the Torch model to load.
  • gpunum, specify which GPU to use, starting at 0.
  • texture, rudimentary texture mapping by taking the 2D projections nearest neighbour (MATLAB only).

Installation Example

I’ve had a few requests to describe a little better how to configure Torch so that everything works correctly. I’ve tested this on Fedora 24 and CentOS 7. I’m assuming it will also work on Ubuntu if you have the correct development packages installed.

# Install some dependencies for later. I might have missed some
sudo yum install glog-devel boost-devel
pip install dlib matplotlib numpy visvis imageio

# Install the Torch distribution.
mkdir -p $HOME/usr/{local,src}
cd $HOME/usr/local
git clone https://github.com/torch/distro.git
mv distro torch
cd torch
sudo ./install-deps
./install.sh
source $HOME/usr/local/torch/install/bin/torch-activate

# Install THPP and fb.python for the face alignment code
cd $HOME/usr/src
git clone https://github.com/1adrianb/thpp.git
cd thpp/thpp
THPP_NOFB=1 ./build.sh

# Install fb.python.
cd $HOME/usr/src
git clone https://github.com/facebook/fblualib.git
cd fblualib/fblualib/python
luarocks make rockspec/*

cd $HOME
git clone --recursive https://github.com/AaronJackson/vrn.git
cd vrn
./download.sh
./run.sh

Paper Citation

@article{jackson2017vrn,
  title={Large Pose 3D Face Reconstruction from a Single Image via Direct Volumetric CNN Regression},
  author={Jackson, Aaron S and Bulat, Adrian and Argyriou, Vasileios and Tzimiropoulos, Georgios},
  journal={International Conference on Computer Vision},
  year={2017}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].