今回は簡単に顔面を他の人の顔面と合成できるフリーソフト「Deep Face Lab」を実際に使ってみたので紹介していきたいと思う。ぜひディープフェイクやディープラーニングに興味があったら読んでいただけると嬉しい。
目次
ディープフェイクとは?
ディープフェイクとは人工知能で有名な技術「ディープラーニング」を使って、人物画像を合成することをディープフェイクと言います。このディープフェイク技術はAIが特定の人物を学習することによって顔の動きや顔全体を再現することができます。
DeepFace Labを使ってみた!!
今までのことを読んでいると危険性ばかり出てきますが、逆にこの技術はいい面もたくさんあるので使ってみようと思います。
ダウンロードをしよう!!
ダウンロードはプログラミングを利用したことがあるユーザーなら絶対に知っている、「GitHub」というサイトからダウンロードしていきます。
上のサイトよりダウンロードができます。ダウンロード方法は、下にスクロールして「Releases」の表にあるWindows(Mega.nz)でダウンロードができます。ダウンロードしたら下の画像のような感じになると思います。
そして、これを全て解凍すると使えるようになるので解凍してください。「2020」のファイルの中もお忘れなく。
使ってみよう!!
素材を入れよう
ダウンロードしたら、"DeepFaceLab/DeepFaceLab_NVIDIA/workspace"より素材を入れていきます。まず、サンプル動画を削除して、自分が入れる動画に名前をつけます。その名前は、
-
data_src.mp4:顔を入れ替えたい人物の動画
data_dst.mp4:顔を入れ替えたい目的の動画
に、設定するとできるのでぜひ試してみてくださいね。
動画から静止画にしよう!!
素材を入れることができたら動画から静止画にしてみましょう。やり方は、DeepFaceLab_NVIDIAにある、2) extract images from video data_srcで自動でできるので、静止画にします。ここでは、data_src.mp4を静止画にします。
[0] Enter FPS ( ?:help ) :
0
[png] Output image format ( png/jpg ?:help ) :
png
開いたら上のようなものが出るので[0]は、Enterでスキップ、[png]は画像が綺麗なままにしたいのでpngを指定したほうが良いと思います。
続いて、data_dst.mp4を静止画にするために、3) extract images from video data_dst FULL FPSを選択します。
[png] Output image format ( png/jpg ?:help ) :
png
これでpngを指定して、静止画にする作業は終わりました。
画像から人物の顔を切り抜く
静止画にできたら、次に人物の顔を切り抜く作業をします。やりかたは先程と同じような手順で4) data_src faceset extractにアクセスして、data_srcを静止画から顔を切り抜きます。
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] : GeForce ○○○○○
[0] Which GPU indexes to choose? :
0
[wf] Face type ( f/wf/head ?:help ) :
wf
[0] Max number of faces from image ( ?:help ) :
0
[512] Image size ( 256-2048 ?:help ) :
512
[90] Jpeg quality ( 1-100 ?:help ) :
90
[n] Write debug images to aligned_debug? ( y/n ) :
n
Extracting faces...
Caching GPU kernels...
Running on GeForce ○○○○○
基本は上のように設定してください。ちなみにグラボで書き出す場合は、Nvidia社のGeforceシリーズしか使えないのでAMDを使っている方はグラボ書き出しはできません。
そして、次に5) data_dst faceset extractにアクセスして、data_dstを顔面に切り抜きます。
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] :GeForce ○○○○○
[0] Which GPU indexes to choose? :
0
[wf] Face type ( f/wf/head ?:help ) :
wf
[512] Image size ( 256-2048 ?:help ) :
512
[90] Jpeg quality ( 1-100 ?:help ) :
90
Extracting faces...
Running on GeForce ○○○○○
というような感じで切り抜きます。
Aiにディープラーニング(学習)させる
やっと準備ができたので、本題のディープラーニングを実行させます。やり方は、6)train Quick96.batにアクセスすることでできます。
Running trainer.
[new] No saved models found. Enter a name of a new model :
(自分の好きなファイル名)
Model first run.
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] : GeForce ○○○○○
[0] Which GPU indexes to choose? :
0
という用な感じでやるとスタートするので、自分の好きなタイミングで学習を終了すればいいと思います。
このような画面になると思うので、プレビューウィンドウで、Pで更新、Enterで終了します。ちなみに学習回数は最低1万回はしたほうが良いと思いますよ。
画像同士を合成させよう!
ここまで来たら後一歩です。合成写真を作るには、7) merge Quick96.batにアクセスして、動画を書き出します。
Running merger.
Choose one of saved models, or enter a name to create a new model.
[r] : rename
[d] : delete
[0] : new - latest
:
0
Loading new_Quick96 model...
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] : GeForce ○○○○○
[0] Which GPU indexes to choose? :
0
このように入力すると下のようなウィンドウが立ち上がるので、[Tab]キーを押して、合成具合を調整してみてください。
[Tab]キーを押すとプレビューみたいなのが出ると思うので、色調整などを[W]や[S]などで調整してみてください。ちなみに、同じ設定を全てに適用するには、Shift + . (>)を押すとできるので試してほしい。
MP4に書き出す
最後に、MP4ファイルに書き出していこうと思う。MP4に書き出すには、8)merged to mp4.batにアクセスするとできる。
[16] Bitrate of output file in MB/s :
16
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
Done.
続行するには何かキーを押してください . . .
ちなみに保存場所は、workspace/result.mp4に保存されている。
そして、新しく作る際に、今回使ったデータを消したいなら1) clear workspace.batにアクセスすると消せるのでぜひやってみてほしい。
↓ちなみに今回作った動画。(学習回数:1万回程度,学習画像168枚)
ディープフェイク技術の悪用
最後に、当記事では「ディープフェイク技術を悪用してはならない」という趣旨で制作しているため、ディープフェイクの危険性や悪用の事例を紹介する義務があると思うので、紹介していきたいと思う。
個人利用でもいじめの発展につながる
ディープフェイク技術を用いて、もっと簡単に使用することができるようになると、個人利用の場合でもいじめが発生してしまい、最悪取り返しのつかない自体(裁判)などに発展してしまう場合があります。
社会や政治の悪用
僕は、これが一番危ないと感じています。社会と政治の悪用です。その理由は、有名な政治家や権力がある人が、このディープフェイク技術を悪用されて、あたかも言ったようなシチュエーションを作ることができます。
このシチュエーションが悪用されて、起こることは最悪の想定で国家間の戦争に使われる事が想定されます。また、国民やそれに値する人物が本来の意見とは別の意見に染まってしまう可能性があるので大変危険な技術になります。
ポルノ動画やアイドルへの悪用
これは今、実際に起っている問題で、例えばアイコラ(アイドルコラージュ)などの特定の人物が別の、シチュエーションにある画像を作り拡散せれれば、大問題になってしまう可能性だってあります。また、ポルノ動画を利用して危険な映像を作る可能性だってあります。
ちなみにこの技術の悪用で、国内では去年に初の逮捕者が出ているので、絶対に悪用しないでください。
まとめ
今回はディープラーニングを用いて、ディープフェイク動画を作ってみました。それではまとめです。
▲悪用の可能性があるので注意が必要
▲学習回数は1万回以上がベスト
▲ディープラーニングは結構なスペックが必要