제작한 가상 얼굴 활용해서 딥페이크 영상 만들어보기 with GAN Algo

DongJoo Kwak·2022년 4월 13일
0
post-thumbnail

🥕 Google Colab을 활용해서 가상 인플루언서 얼굴을 활용한 딥페이크 영상 만들어 보겠습니다!

프로그램 자세한 코드 및 내용 -> https://url.kr/275tyo

2019년 11월에 NeuroIPS에서 발표된 First Order Motion Model for Image Animation 페이퍼에서 발표된 기술&코드를 포함

📌 코드


🌳 버전세팅 및 깃허브 코드 불러오기

!pip install scikit-video
!git clone https://github.com/drminix/first-order-model
%cd /content/first-order-model

🌳 인공지능 신경망 파일 가져오기

https://drive.google.com/drive/folders/1TIjufuJdPgkzvCQ3G1mICQZVCxWbCOFX?usp=sharing

from google.colab import drive
drive.mount('/content/gdrive')
target_folder = "/content/gdrive/My Drive/deepfake"

🌳 결과화면 보여주는 display 함수

def display(source, driving, generated=None):
     fig = plt.figure(figsize=(8 + 4 * (generated is not None), 6))

     ims = []
     for i in range(len(driving)):
         cols = [source]
         cols.append(driving[i])
         if generated is not None:
             cols.append(generated[i])
         im = plt.imshow(np.concatenate(cols, axis=1), animated=True)
         plt.axis('off')
         ims.append([im])

     ani = animation.ArtistAnimation(fig, ims, interval=50, repeat_delay=1000)
     plt.close()
     return ani

🌳 생성자 선언 및 사진/영상소스 설정하여 영상 제작

🌱 초기 세팅

import imageio
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from skimage.transform import resize
from IPython.display import HTML
import warnings
import os
import skvideo.io
warnings.filterwarnings("ignore")
from demo import make_animation
from skimage import img_as_ubyte

#생성자 선언
from demo import load_checkpoints
import os
generator, kp_detector = load_checkpoints(config_path='config/vox-256.yaml', 
                            checkpoint_path=os.path.join(target_folder,'vox-cpk.pth.tar'))

🌱 사진/영상 소스설정 : 경로는 자신의 구글드라이브 경로로 설정

#얼굴 소스
source_image = imageio.imread('/content/gdrive/MyDrive/Colab Notebooks/deepfake_src/000.PNG')
source_image = resize(source_image, (256, 256))[..., :3]

#입력영상
# driving_video = skvideo.io.vread('/content/gdrive/MyDrive/Colab Notebooks/deepfake_src/data_dst_3.mp4')
driving_video = skvideo.io.vread('/content/gdrive/My Drive/deepfake/04.mp4')
# driving_video = skvideo.io.vread('/content/gdrive/MyDrive/Colab Notebooks/deepfake_src/video1.mp4')

driving_video = [resize(frame, (256, 256))[..., :3] for frame in driving_video]
predictions = make_animation(source_image, driving_video, generator, kp_detector, relative=True)

#save resulting video
imageio.mimsave('../generated.mp4', [img_as_ubyte(frame) for frame in predictions])
#video can be downloaded from /content folder

HTML(display(source_image, driving_video, predictions).to_html5_video())
# HTML(display( predictions).to_html5_video())

🌳 영상 결과

아래 사진 클릭하면 영상 나옵니다!

📌 License

  • 2019년 11월에 NeuroIPS에서 발표된 First Order Motion Model for Image Animation 페이퍼에서 발표된 기술&코드를 포함



✔ 깃허브! 아래 사진을 클릭하면 제작에 사용된 코드를 볼수 있음!

profile
즐거운 개발 공간

0개의 댓글