이것은 중간 랜드마크 표현을 통한 오디오-비주아 립 합성 주제에 대한 서리 대학의 Wish Suharitdamrong의 마지막 해 프로젝트 3학년 BSc 컴퓨터 과학에 대한 코드 구현입니다.
온라인 시연은 ? 포옹얼굴
conda 또는 pip를 사용하여 패키지를 설치하는 두 가지 방법이 있습니다.
environment.yml
에서 가상 콘다 환경 생성
2. pip를 사용하여 패키지를 설치합니다. (이전 버전은 일부 라이브러리를 지원하지 않을 수 있으므로 python 3.7
이상을 사용해야 합니다.)
# .yml 파일에서 가상 환경 생성conda env create -f 환경.yml# 가상 환경 활성화conda 활성화 fyp
# pip를 사용하여 설치 require packagespip install -r require.txt
본 프로젝트에 사용된 시청각 데이터세트는 LRS2와 LRS3입니다. LRS2 데이터는 모델 훈련과 평가 모두에 사용되었습니다. LRS3 데이터는 모델 평가에만 사용되었습니다.
데이터세트 | 페이지 |
---|---|
LRS2 | 링크 |
LRS3 | 링크 |
가중치 생성기 모델 다운로드
모델 | 다운로드 링크 |
---|---|
발전기 | 링크 |
생성기 + SyncLoss | 링크 |
주의 생성기 + SyncLoss | 링크 |
랜드마크 기반 SyncNet 모델의 가중치 다운로드 다운로드 링크
Image2Image Translation 모델에 대한 사전 훈련된 가중치는 MakeItTalk 저장소의 사전 훈련된 모델 섹션 Repo Link에서 다운로드할 수 있습니다.
├── checkpoint # 모델 체크포인트 디렉터리│ └── Generator # put Generator 모델 가중치 여기에 │ └── syncnet # 여기에 Landmark SyncNet 모델 가중치 넣기│ └── image2image # 여기에 Image2Image Translation 모델 가중치 넣기
python run_inference.py --generator_checkpoint <checkpoint_path> --image2image_checkpoint <checkpoint_path> --input_face <image/video_path> --input_audio <audio_source_path>
폴더 구조에 대한 자세한 내용은 Wav2Lip과 동일한 데이터 전처리 방법을 사용하여 해당 저장소인 여기에서 찾을 수 있습니다.
python preprocess_data.py --data_root data_root/main --preprocessed_root preprocessed_lrs2_landmark/
# CLI for traning attention generator with pretrain landmark SyncNet discriminator python run_train_generator.py --model_type attnlstm --train_type pretrain --data_root preprocessed_lrs2_landmark/ --checkpoint_dir <folder_to_save_checkpoints>
# CLI for training pretrain landmark SyncNet discriminator python run_train_syncnet.py --data_root preprocessed_lrs2_landmark/ --checkpoint_dir <folder_to_save_checkpoints>
이 프로젝트에서는 정량적 평가를 위해 LRS2 및 LRS3 데이터세트의 데이터를 사용했으며, 평가 데이터 목록은 Wav2Lip에서 제공됩니다. 파일 목록(평가에 사용된 비디오 및 오디오 데이터)과 Lip Sync 벤치마크에 대한 세부 정보는 해당 저장소인 여기에서 확인할 수 있습니다.
cd evaluation # generate evaluation videos python gen_eval_vdo.py --filelist <path> --data_root <path> --model_type <type_of_model> --result_dir <save_path> --generator_checkpoint <gen_ckpt> --image2image_checkpoint <image2image_checkpoint>
이 프로젝트의 코드 베이스는 Wav2Lip 및 MakeItTalk에서 영감을 받았습니다. 놀라운 작업의 코드 구현을 온라인에서 사용할 수 있게 해준 두 프로젝트의 작성자에게 감사를 전하고 싶습니다.