PyTorch implementation for the paper "AD-NeRF: Audio Driven Neural Radiance Fields for Talking Head Synthesis (ICCV 2021)".
Authors: Yudong Guo, Keyu Chen, Sen Liang, Yong-Jin Liu, Hujun Bao and Juyong Zhang.
You can create an anaconda environment called adnerf with:
conda env create -f environment.yml
conda activate adnerf
Recommend install from a local clone
git clone https://github.com/facebookresearch/pytorch3d.git
cd pytorch3d && pip install -e .
Put "01_MorphableModel.mat" to data_util/face_tracking/3DMM/; cd data_util/face_tracking; run
python convert_BFM.py
Data Preprocess ($id Obama for example)
bash process_data.sh Obama
Train Two NeRFs (Head-NeRF and Torso-NeRF)
python NeRFs/HeadNeRF/run_nerf.py --config dataset/$id/HeadNeRF_config.txt
python NeRFs/TorsoNeRF/run_nerf.py --config dataset/$id/TorsoNeRF_config.txt
Reconstruct original video with audio input
python NeRFs/TorsoNeRF/run_nerf.py --config dataset/$id/TorsoNeRFTest_config.txt --aud_file=dataset/$id/aud.npy --test_size=300
Drive the target person with another audio input
python NeRFs/TorsoNeRF/run_nerf.py --config dataset/$id/TorsoNeRFTest_config.txt --aud_file=${deepspeechfile.npy} --test_size=-1
If you find our work useful in your research, please consider citing our paper:
@inproceedings{guo2021adnerf,
title={AD-NeRF: Audio Driven Neural Radiance Fields for Talking Head Synthesis},
author={Yudong Guo and Keyu Chen and Sen Liang and Yongjin Liu and Hujun Bao and Juyong Zhang},
booktitle={IEEE/CVF International Conference on Computer Vision (ICCV)},
year={2021}
}
If you have questions, feel free to contact gyd2011@mail.ustc.edu.cn.
We use face-parsing.PyTorch for parsing head and torso maps, and DeepSpeech for audio feature extraction. The NeRF model is implemented based on NeRF-pytorch.