1번째 줄:
1번째 줄:
== 개요 ==
== 개요 ==
−
범죄에도 악용될 수 있는... 위험한 기술.
+
범죄에도 악용될 수 있는... 위험한 기술. 간단하게 서비스 해주는 곳도 있다.(https://www.youtube.com/watch?v=qaB0YqSfasM)
+
+
샌프란샘박사님의 딥페이크 영상 만들기에 공개된 코드이다.
+
+
https://github.com/iperov/DeepFaceLab<nowiki/>도 참고해보자.
+
+
이곳저곳 찾아본 결과... 코드 실행 한 번으로 간단하게 결과물이 나오는 것은 없었다;;; 다 번거로운 중간 클릭과정들을 거쳐야 했다..ㅜ
+
+
=== 결론 ===
+
어플을 사용하는 게 가장 간편한 방법. 다양한 코드들로 진행한다 해서 간단하게 아주 양질의 결과물을 얻을 수 있는 것은 아니다.
== 사전준비 ==
== 사전준비 ==
+
{| class="wikitable"
+
!과정
+
!설명
+
!방법
+
|-
+
|필요 패키지 설치
+
|프로젝트 디렉터리에서 진행.
+
|pip install scikit-video
+
git clone <nowiki>https://github.com/drminix/first-order-model</nowiki>
+
|-
+
|
+
|
+
|
+
|}
+
+
== 사용 ==
+
{| class="wikitable"
+
!과정
+
!설명
+
!방법
+
|-
+
|입력영상과 사진 불러오기
+
|영상과 그 영상에 덧입힐 사진을 지정한다.
+
|<syntaxhighlight lang="python">
+
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")
+
+
#입력사진
+
source_image = imageio.imread('/이미지 경로.jpg')
+
+
#입력영상
+
driving_video = skvideo.io.vread('/영상 경로.mp4')
+
+
#Resize image and video to 256x256
+
source_image = resize(source_image, (256, 256))[..., :3]
+
+
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())
+
</syntaxhighlight>
+
|-
+
|영상만들기
+
|
+
|<syntaxhighlight lang="python">
+
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'))
+
+
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('../생성할파일경로.mp4', [img_as_ubyte(frame) for frame in predictions])
+
#video can be downloaded from /content folder
−
# CUDA 세팅
+
HTML(display(source_image, driving_video, predictions).to_html5_video())
−
#: CPU연산은 너무 오래걸린다. http://id8436.iptime.org:2786/mediawiki/index.php/TensorFlow<nowiki/>를 참고하자.
+
</syntaxhighlight>
−
# 소스코드 다운
+
|}
−
#: 깃허브에서 faceswap코드를 다운받는다. git clone --depth 1 https://github.com/deepfakes/faceswap.git
−
#: 받은 파일의 압축을 풀고 프롬프트에서 setup.py를 실행한다. 설치환경을 설정해준다. cuda연산 사용여부 등등을 묻는데, 이곳에 답하면 자동으로 설정해준다.
#
#
[[분류:인공지능 기능구현]]
[[분류:인공지능 기능구현]]