본문으로 바로가기

[VOCA] 설치 및 실행

category AI/Audio2Face 2022. 1. 10. 13:42
728x90

1. 환경 설치(Linux)

A. 프로젝트 다운로드

https://github.com/TimoBolkart/voca

 

GitHub - TimoBolkart/voca: This codebase demonstrates how to synthesize realistic 3D character animations given an arbitrary spe

This codebase demonstrates how to synthesize realistic 3D character animations given an arbitrary speech signal and a static character mesh. - GitHub - TimoBolkart/voca: This codebase demonstrates ...

github.com

git clone https://github.com/TimoBolkart/voca.git

* Python 3.6 설치 및 사용

* Windows 사용자는 아나콘다(Anaconda)로 설치 권장

B. ffmpeg 설치

sudo apt install ffmpeg

C. 라이브러리 설치

cd voca
pip install -r requirements.txt

D. mesh 설치

https://github.com/MPI-IS/mesh

 

GitHub - MPI-IS/mesh: MPI-IS Mesh Processing Library

MPI-IS Mesh Processing Library. Contribute to MPI-IS/mesh development by creating an account on GitHub.

github.com

git clone https://github.com/MPI-IS/mesh.git
sudo apt-get install libboost-dev
BOOST_INCLUDE_DIRS=/usr/include/boost/include make all

아래 명령어가 제대로 동작하면 정상적으로 설치된 것

cd mesh
make tests

E. Data 다운로드

i. ds_graph: pre-trained된 DeepSpeech 모델(v0.1.0)

https://github.com/mozilla/DeepSpeech/releases/download/v0.1.0/deepspeech-0.1.0-models.tar.gz

ii. flame

* 회원가입 필요: https://flame.is.tue.mpg.de/download.php

 

FLAME

 

flame.is.tue.mpg.de

* 우측 상단 Download 탭 클릭

FLAME 2019 (fixed mouth, more data) Download (143 MB)

iii) model: trained된 VOCA 모델

* 회원가입 필요: https://voca.is.tue.mpg.de/download.php

 

VOCA

 

voca.is.tue.mpg.de

* 우측 상단 Download 탭 클릭

Trained Model (12 MB) Download

iv) template: 기본 모델

Template Meshes (2 MB) Download

v) audio: 샘플 데이터

Audio (71 MB) Download
Sentences text (17 KB) Download

vi) training_data: training 데이터

Training Data (8 GB) Download

2. 실행

python run_voca.py --tf_model_fname './model/gstep_52280.model' --ds_fname './ds_graph/output_graph.pb' --audio_fname './audio/test_sentence.wav' --template_fname './template/FLAME_sample.ply' --condition_idx 3 --uv_template_fname './template/texture_mesh.obj' --texture_img_fname './template/texture_mesh.png' --out_path './animation_output'

* --uv_template_fname '얼굴 메쉬 경로' (생략가능)

* --texture_imag_fname '얼굴 텍스쳐 경로' (생략가능)

*  동영상 생성에 오류가 발생하면 --visualize False 구문 추가

3. 수정

A. eye blinks 추가

python edit_sequences.py --source_path './animation_output/meshes' --out_path './FLAME_eye_blink' --flame_model_path  './flame/generic_model.pkl' --mode blink --num_blinks 2 --blink_duration 15

* --num_blinks '깜박임 횟수'

* --blink_duration '깜박임 시간'

B. identity-dependent shape 수정

python edit_sequences.py --source_path './animation_output/meshes' --out_path './FLAME_variation_shape' --flame_model_path  './flame/generic_model.pkl' --mode shape --index 0 --max_variation 3

* --index '인덱스 번호'

* --max_variation '변화 최대치'

C. head pose 수정

python edit_sequences.py --source_path './animation_output/meshes' --out_path './FLAME_variation_pose' --flame_model_path  './flame/generic_model.pkl' --mode pose --index 3 --max_variation 0.52

* --index '인덱스 번호'

* --max_variation '변화 최대치'

D. 영상 생성

python visualize_sequence.py --sequence_path './FLAME_eye_blink/meshes' --audio_fname './audio/test_sentence.wav' --uv_template_fname './template/texture_mesh.obj' --texture_img_fname './template/texture_mesh.png' --out_path './FLAME_eye_blink'

* --uv_template_fname '얼굴 메쉬 경로' (생략가능)

* --texture_imag_fname '얼굴 텍스쳐 경로' (생략가능)

* --sequence_path '입력 메쉬 경로'

* --audio_fname 'wav 파일 경로'

E. FLAME 파라미터 추출

python compute_FLAME_params.py --source_path './animation_output/meshes' --params_fname './FLAME_parameters/params.npy' --flame_model_path  './flame/generic_model.pkl' --template_fname './template/FLAME_sample.ply'

F. FLAME 메쉬 생성

i. 랜덤 생성

python sample_templates.py --flame_model_path './flame/generic_model.pkl' --num_samples 1 --out_path './template'

ii. FLAME 파라미터 입력 생성

python compute_FLAME_params.py --params_fname './FLAME_parameters/params.npy' --flame_model_path  './flame/generic_model.pkl' --out_path './FLAME_parameters/meshes'

iii. 이미지 입력 생성

https://github.com/soubhiksanyal/RingNet

 

GitHub - soubhiksanyal/RingNet: Learning to Regress 3D Face Shape and Expression from an Image without 3D Supervision

Learning to Regress 3D Face Shape and Expression from an Image without 3D Supervision - GitHub - soubhiksanyal/RingNet: Learning to Regress 3D Face Shape and Expression from an Image without 3D Sup...

github.com

git clone https://github.com/soubhiksanyal/RingNet.git
cd RingNet
pip install -r requirements.txt
pip install opendr==0.77
mkdir model

* pretrained RinNet 모델 및 FLAME 2019 모델 다운로드

* 회원가입 필요: https://ringnet.is.tue.mpg.de/

 

RINGNET

 

ringnet.is.tue.mpg.de

python -m demo --img_path ./input_images/000013.jpg --out_folder ./RingNet_output --save_obj_file=True --save_texture=True --save_flame_parameters=True --neutralize_expression=True

4. 학습

A. Training

python config_parser.py
python run_training.py

B. Visualize

tensorboard --logdir='./training/summaries/' --port 6006

 

728x90

'AI > Audio2Face' 카테고리의 다른 글

[VOCA] 테스트 결과  (0) 2022.01.10
[VOCA] 개요 및 논문 리뷰  (0) 2022.01.07