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
- PATH includes <CUDA_DIR>/bin
- LD_LIBRARY_PATH includes <CUDA_DIR>/lib64
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 [email protected]: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