This repository contains an official implementation of Gaussian Haircut, a strand-based hair reconstruction approach for monocular videos.
Install CUDA 11.8
Follow the instructions on https://developer.nvidia.com/cuda-11-8-0-download-archive.
Make sure that
The environment was tested only with this CUDA version.
Install Blender 3.6 in order to create strand visualizations
Follow instructions on https://www.blender.org/download/lts/3-6.
Close the repo and run the install script
git clone git@github.com:eth-ait/GaussianHaircut.git
cd GaussianHaircut
chmod +x ./install.sh
./install.sh
Record a monocular video
Use examples on the project page as references and introduce as little motion blur as possible.
Setup a directory for the reconstructed scene
Put the video file in it and rename it to raw.mp4
Run the script
export PROJECT_DIR="[/path/to/]GaussianHaircut"
export BLENDER_DIR="[/path/to/blender/folder/]blender"
DATA_PATH="[path/to/scene/folder]" ./run.sh
The script performs data pre-processing, reconstruction, and final visualization using Blender. Use Tensorboard to see intermediate visualizations.
This code is based on the 3D Gaussian Splatting project. For terms and conditions, please refer to LICENSE_3DGS. The rest of the code is distributed under CC BY-NC-SA 4.0.
If this code is helpful in your project, cite the papers below.
@inproceedings{zakharov2024gh,
title = {Human Hair Reconstruction with Strand-Aligned 3D Gaussians},
author = {Zakharov, Egor and Sklyarova, Vanessa and Black, Michael J and Nam, Giljoo and Thies, Justus and Hilliges, Otmar},
booktitle = {European Conference of Computer Vision (ECCV)},
year = {2024}
}
Neural Haircut: FLAME fitting pipeline, strand prior and hairstyle diffusion prior
HAAR: hair upsampling
Matte-Anything: hair and body segmentation
PIXIE: initialization for FLAME fitting
Face-Alignment, OpenPose: keypoints detection for FLAME fitting