【DeepFake】 마침내 우리 완코가 말하기 시작했습니다.
①소개
뭔가 아웃풋이 있으면 AI를 한 걱정이 되어 즐겁지요. 이번에는 히타마에서 화제의 DeepFake를 해보고 싶습니다.
②DeepFake란?
DeepFake란, 심층 학습과 가짜를 조합한 조어로, 인공 지능에 근거하는 인물 화상 합성 기술을 말합니다. 샘플 를 보면 즐거움을 알 수 있다고 생각합니다만, 이번은 「first-order-model」를 이용해, 정지화면의 완코를 말해 보고 싶습니다.
③TRY
그럼 빨리 해보자!
환경은, 프로그램을 동작시키는 것은 GPU를 사용할 수 있으므로 Google Colab, 데이터의 저장은 Google Drive로 합니다.
■ 사전 준비
Google Drive에서 실시하세요.
사전 준비로서 각종 데이터(체크포인트, 동영상, 정지영상)를 Google Drive에 저장합니다.
➊ 데이터 저장 폴더 생성
Google 드라이브의 내 드라이브 바로 아래에 "first-order-motion-model
"폴더를 만듭니다.
➋ 체크포인트 DL
공유한 '트레이닝된 체크포인트'를 내 Google 드라이브에 저장합니다. 체크 포인트 링크를 열고 방금 만든 "first-order-motion-model
"로 드래그 앤 드롭하면 됩니다. 이 방법이라면 실제로 바로 가기가 생성되지만 이것도 괜찮습니다.
다운로드는 여기 ▶ Google 드라이브 or Yandex Disk
바로 가기로 실행하는 경우 체크포인트를 로드하면 오류가 발생할 수 있습니다. 이는 공유 폴더에서 다운로드 제한이 걸려서 발생합니다. 이 경우 하루 정도 기다렸다가 다시 실시하십시오. 이런 일이 싫다면 로컬 PC에 다운로드하고 Google 드라이브에 실제 파일을 업로드하십시오. 실제 파일은 700MB 정도의 크기입니다.
➌ 동영상 데이터, 정지 영상 데이터 저장
촬영이나 트리밍은 휴대 전화 등으로 쉽게 할 수 있습니다.
DeepFake란, 심층 학습과 가짜를 조합한 조어로, 인공 지능에 근거하는 인물 화상 합성 기술을 말합니다. 샘플 를 보면 즐거움을 알 수 있다고 생각합니다만, 이번은 「first-order-model」를 이용해, 정지화면의 완코를 말해 보고 싶습니다.
③TRY
그럼 빨리 해보자!
환경은, 프로그램을 동작시키는 것은 GPU를 사용할 수 있으므로 Google Colab, 데이터의 저장은 Google Drive로 합니다.
■ 사전 준비
Google Drive에서 실시하세요.
사전 준비로서 각종 데이터(체크포인트, 동영상, 정지영상)를 Google Drive에 저장합니다.
➊ 데이터 저장 폴더 생성
Google 드라이브의 내 드라이브 바로 아래에 "first-order-motion-model
"폴더를 만듭니다.
➋ 체크포인트 DL
공유한 '트레이닝된 체크포인트'를 내 Google 드라이브에 저장합니다. 체크 포인트 링크를 열고 방금 만든 "first-order-motion-model
"로 드래그 앤 드롭하면 됩니다. 이 방법이라면 실제로 바로 가기가 생성되지만 이것도 괜찮습니다.
다운로드는 여기 ▶ Google 드라이브 or Yandex Disk
바로 가기로 실행하는 경우 체크포인트를 로드하면 오류가 발생할 수 있습니다. 이는 공유 폴더에서 다운로드 제한이 걸려서 발생합니다. 이 경우 하루 정도 기다렸다가 다시 실시하십시오. 이런 일이 싫다면 로컬 PC에 다운로드하고 Google 드라이브에 실제 파일을 업로드하십시오. 실제 파일은 700MB 정도의 크기입니다.
➌ 동영상 데이터, 정지 영상 데이터 저장
촬영이나 트리밍은 휴대 전화 등으로 쉽게 할 수 있습니다.
정사각형으로 자른 동영상과 정지영상을 "
first-order-motion-model
"폴더에 놓습니다. 파일명은 다음과 같이 하십시오.■DeepFake 처리
Google Colab에서 실시하세요.
Google 드라이브에 저장된 데이터를 사용하여 DeepFake 처리를 수행합니다.
➊git clone
우선은, 「 first-order-model 」를 git clone 합니다.
!git clone https://github.com/AliaksandrSiarohin/first-order-model
➋ 현재 디렉토리 이동
first-order-model
아래로 이동합니다.%cd first-order-model
➌ 리사이즈
스틸 이미지와 동영상을 256x256으로 크기 조정하려면 다음을 수행합니다.
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
warnings.filterwarnings("ignore")
source_image = imageio.imread('/content/drive/My Drive/first-order-motion-model/pic001.png')
reader = imageio.get_reader('/content/drive/My Drive/first-order-motion-model/movie001.mp4')
#Resize image and video to 256x256
source_image = resize(source_image, (256, 256))[..., :3]
fps = reader.get_meta_data()['fps']
driving_video = []
try:
for im in reader:
driving_video.append(im)
except RuntimeError:
pass
reader.close()
driving_video = [resize(frame, (256, 256))[..., :3] for frame in driving_video]
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
HTML(display(source_image, driving_video).to_html5_video())
➍ 체크포인트 로드
사전 훈련된 체크포인트를 로드합니다.
from demo import load_checkpoints
generator, kp_detector = load_checkpoints(config_path='config/vox-256.yaml',
checkpoint_path='/content/drive/My Drive/first-order-motion-model/vox-cpk.pth.tar')
➎DeepFake 만들기
DeepFake를 만듭니다. 작성한 동영상은 「../generated.mp4」가 됩니다.
from demo import make_animation
from skimage import img_as_ubyte
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], fps=fps)
#video can be downloaded from /content folder
HTML(display(source_image, driving_video, predictions).to_html5_video())
④이상
수고하셨습니다.
왠지 출력이 있으면 생긴 느낌이 있어서 매우 즐겁네요. 이렇게 간단하게 DeepFake를 할 수 있다니 놀랍습니다. 모두는 「first-order-model」님의 힘입니다만.
Reference
이 문제에 관하여(【DeepFake】 마침내 우리 완코가 말하기 시작했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/PoodleMaster/items/ed8ec19839f6a7fab868
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【DeepFake】 마침내 우리 완코가 말하기 시작했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/PoodleMaster/items/ed8ec19839f6a7fab868텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)