ツイッターで、とある人が deepfake についてつぶやいていた
気になって調べてみると、GPUパワーをガンガン使うようだ
もしや、余剰のマイニング用 GPUで商売できるか?と思ったが、レンタルGPUは難しそうだった。
マイニングと違って、CPUもRAMも必要。
でも、8GBあればギリギリなんとか。
まず、deepfake とはなんでしょう?という人は、こちらを参照ください
さて実際に使うツールは faceswap 。サイトはこちら
download タブから windows 用のインストーラのリンクをクリックして保存します
本体は github にあります
必要なパッケージ(Python, MiniConda3)は勝手にダウンロードしますが、faceswap とは別フォルダです
MiniConda3 は、c:\user\username\MiniConda3 に格納されます。
インストーラ実行後、デスクトップの faceswap というアイコンで起動します。
1.学習用画像の準備
1000個以上データが必要なので、動画から切り出すほうが楽です
変換元A,変換後B の二人分のデータを作成します。
Extract タブ
@ Data Input Dir
動画本体を指定するか、静止画が入っているフォルダを指定します。
A Output Dir
切り出した顔画像の格納フォルダを指定します。
B Alignments
顔の位置(align) を記憶するファイルの保存フォルダを指定します。(省略可)
デフォルトファイル名は、動画名_alignments.fsa です。
メモ:
変換(Convert)対象の顔は、動画からExtract で切り出したものです。
alignments に保存された顔だけが変換されます。
学習モデルと別の動画を使用するときは工夫が必要です。
CPlugins
検出、位置判定、顔のマスクなど、アルゴリズムを選べます。まずはデフォルトで。
DFace Processing
Min Size に顔画像の最小サイズを対角ピクセル数で指定できます。
学習用顔画像は 64x64 ぐらいを使うらしいので、ゴミ画像除去のため 100 ぐらいでいいかも?
EOutput
動画から切り出す顔画像の間引く数を指定します
動画の全フレームを検索するので、静止画が大量に作成されます。
Extract Every N に 100 と指定すれば、枚数が 1/100 になります
メモ:
ただし、この数値を元に alinments も作成するので、変換する動画の場合は、あきらめて1を指定します
(alinments ファイルなしの動画を convert するときは、自動で顔検出しながら実行する仕様だが、うまくいかないことが多い)
Generate をクリックするとコマンドラインを表示します(表示するだけ)
Extract をクリックすると実行します。終了を気長に待ちましょう。
終了するとAのフォルダに顔画像がたくさんできます。
顔じゃない画像や、向きがおかしい画像や、ターゲット以外の顔ファイルを削除します。
エクスプローラで、中アイコンぐらいで表示して、下の方から消しておくと効率がいいです。
(つづく)
https://wakelet.com/wake/d4CADksKWY1m9FiI24cjn
https://wakelet.com/wake/467kNmRWXp7rdVb1EkVmR
https://wakelet.com/wake/l-D3Y31wIU62OAvC-yAxV
https://wakelet.com/wake/xgGuPFAH2N8-OcFurK99b
https://wakelet.com/wake/HmC62MuMJoOBfIhXnuTER
https://wakelet.com/wake/kOFfjdJMdy-mF3Y04a9DL
https://wakelet.com/wake/A-x9ldQWr-ESUOwpo9XgY
https://wakelet.com/wake/83K1Fl58gXDY4ohdHOUIh
https://wakelet.com/wake/FW5K7kvrUPOGcPndyYppw
https://wakelet.com/wake/9tTBb-MwDZ7xQoPe73hiB
https://wakelet.com/wake/k-plMM_cHetajzv-tLM98
https://wakelet.com/wake/ekSlElC7vnQl-QfOVpPW9
https://wakelet.com/wake/svZ2Cr6AQ28laQYOUSu3d
https://wakelet.com/wake/EbDz0tGGcj-ybtmXPwMNv
https://wakelet.com/wake/I8wqbCeU4gECX2Ny37TgS
https://wakelet.com/wake/-K6EiRHXja5u2mnf0iwbz
https://wakelet.com/wake/bH0kBWO2BRPqM1L6oK81e
https://wakelet.com/wake/Dn6WZjx8MqjnDoHyrzEzL
https://wakelet.com/wake/jzI_ZfvjO2f5S0S48TiUf
https://imgur.com/oyvGuBj
https://imgur.com/4fuXKxC
https://imgur.com/HWZQn5N
https://imgur.com/OaxRm78
https://imgur.com/QwhH1sA
https://imgur.com/0zPeqNt
https://imgur.com/Pxlt9Ip
https://imgur.com/WLY9p2k
https://imgur.com/R2Cb2ff
https://imgur.com/3o1B4Pp
https://imgur.com/EPuaxaT
https://imgur.com/GOwKTKx
https://imgur.com/OkFeJ60
https://imgur.com/d6d4pXD
https://imgur.com/L5pLbV9
https://imgur.com/u7kt28v
https://imgur.com/Lfg2FcY
https://imgur.com/mKYLtQo
https://imgur.com/vP8mQMn
https://imgur.com/4zRGsg0
https://imgur.com/tisAhGc
https://imgur.com/dJFGXKr
https://imgur.com/rL06yTH
https://imgur.com/RcymYNj
https://imgur.com/xC3y8Sf
https://imgur.com/j1PlFnH
https://imgur.com/FzWn8WY
https://imgur.com/Ftye1vt
https://imgur.com/tB647zZ
https://imgur.com/9xqVCG4
https://imgur.com/Vs6Fs0L