とある女優さんが
やらかしましたが
これからの時代は
代役に顔を差し替えて放送できる時代が
やって来るんではないかと思います。
沢尻エリカさんを
山本舞香さんに変えてみました。
これなら
来年の大河ドラマも放送できるよーwww
解説動画はこちら
はい
と言うことで
やり方を簡単に説明します。
まずは動画を静止画に切り出します。
opencvを使えば
動画から静止画に
変換できます。
切り出し方は
次のようなコードで行うことができます。
これでmp4ファイルを
jpgファイルに切り出します。
次にこのファイルたちの顔を入れ替えます。
入れ替える所は自作で作りましょうwww
入れ替えたらそれを動画に連結します。
下記のようなコードで
行うことができます。
さて出来上がったmp4を表示するのは
このようなコードになります。
これでjupyter notebook上でみることができます。
素材をきちんと撮れば
違和感のない形で
スワッピングできるのではないかと
思いますね。
今後は
ドラマなどで撮り終えてしまったものも
こういった技術が発達すれば
代役にすぐに差し替えて
放映することができるように
なるんじゃないかと思いますね。
自分のプログラムは
まだまだ発展途上ですが
普通に差し替えできる
未来が待っていることでしょう。
皆さんも
自作して
ぜひ試してみてください。
それでは
解説動画はこちら
はい
と言うことで
やり方を簡単に説明します。
まずは動画を静止画に切り出します。
opencvを使えば
動画から静止画に
変換できます。
切り出し方は
次のようなコードで行うことができます。
import os import cv2 def get_frame_img(video_path, dir_path, basename, ext='jpg'): cap = cv2.VideoCapture(video_path) if not cap.isOpened(): return os.makedirs(dir_path, exist_ok=True) base_path = os.path.join(dir_path, basename) digit = len(str(int(cap.get(cv2.CAP_PROP_FRAME_COUNT)))) n = 0 while True: ret, frame = cap.read() if ret: cv2.imwrite('{}_{}.{}'.format(base_path, str(n).zfill(digit), ext), frame) n += 1 else: return get_frame_img('IMG/sawaziri.mp4', 'IMG/sawaziri', 'sawaziri')
これでmp4ファイルを
jpgファイルに切り出します。
次にこのファイルたちの顔を入れ替えます。
入れ替える所は自作で作りましょうwww
入れ替えたらそれを動画に連結します。
下記のようなコードで
行うことができます。
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation fig =plt.figure(figsize=(16,9)) ims = [] for a in range(9,18): img = face_swapping2('IMG/yamamotomaika3.jpg','IMG/sawaziri/sawaziri_{:02}.jpg'.format(a)) line = plt.imshow(img) ims.append([line]) ani = animation.ArtistAnimation(fig, ims) b = ani.save('anim.mp4', writer="ffmpeg")
さて出来上がったmp4を表示するのは
from IPython.display import HTML HTML(ani.to_html5_video())
このようなコードになります。
これでjupyter notebook上でみることができます。
素材をきちんと撮れば
違和感のない形で
スワッピングできるのではないかと
思いますね。
今後は
ドラマなどで撮り終えてしまったものも
こういった技術が発達すれば
代役にすぐに差し替えて
放映することができるように
なるんじゃないかと思いますね。
自分のプログラムは
まだまだ発展途上ですが
普通に差し替えできる
未来が待っていることでしょう。
皆さんも
自作して
ぜひ試してみてください。
それでは