1. 환경 설치(Linux)
A. 프로젝트 다운로드
https://github.com/TimoBolkart/voca
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
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
* 우측 상단 Download 탭 클릭
FLAME 2019 (fixed mouth, more data) | Download (143 MB) |
iii) model: trained된 VOCA 모델
* 회원가입 필요: https://voca.is.tue.mpg.de/download.php
* 우측 상단 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
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/
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
'AI > Audio2Face' 카테고리의 다른 글
[VOCA] 테스트 결과 (0) | 2022.01.10 |
---|---|
[VOCA] 개요 및 논문 리뷰 (0) | 2022.01.07 |