OpenFaceSwapの使い方 Fakeappの使い方シリーズその2

f:id:cambox:20180625170231j:plain

 

ディオさんの場合は体をもらいましたが、OpenFaceSwapも場合は顔をなじませることになります。

 

今回使い方を書く直前にこんな記事を読みました。

 

Gigazineさんより。

gigazine.net

フェイクポルノ>リベンジポルノが本当かどうかはわかりません。

(弁護持参曰く「数時間で作れちゃうZE☆」とか絶対作ったことないでしょ・・・。)

しかし、刑事裁判ではなく民事裁判で争わなければいけないというのはかなり被害者側に厳しいですね。

今後この辺も記事にしますが、フェイクポルノ対策としてSNSに画像を載せないとかは無理だと思いますよ。

僕がスマホのカメラをONにしてその辺をうろうろしてるだけで、現状でも非常に低品質ながらもフェイクポルノが作れるんですから。

むしろカメラ側にCNNが認知不和を起こすような、人間の目には見えないノイズをのせとくとかのほうが現実的かと。

 

それではお待たせの使い方は以下からになります。

まだインストールが済んでいない方はこちらからどうぞ。

OpenFaceSwapのインストールの仕方 Fakeappの使い方シリーズその1 - カンボジア滞在日記

※モデルデータや顔写真セットの公開は絶対にやめましょう。ガチにつかまりますから。

 【各ボタンの説明】

f:id:cambox:20180625171208j:plain

 

上から順番に使っていきます。

 

VIDEOAを押して顔を「変えられる側」つまりボディ側を選びます。

 

次にIMAGESAを押して動画を写真に変えます。

歯車アイコンでどれだけ細かく取るか変えられます。

Freames/Secを小さくすると大雑把に、大きくするとより細かく写真にします。

通常はデフォルトか動画のFPS値を入力します。

(1時間くらいある動画を変える場合は1にしとかないと顔に変えるときに恐ろしい時間がかかります。)

成功していれば虫眼鏡を押せば画像がたくさん入っています。

 

FACESAを押して全体画像を顔だけの画像に変換します。

1万枚クラスの時はゲームするか英語でも勉強しましょう。

かなーり時間がかかります。

こちらも成功すれば虫眼鏡アイコンを押せば画像がたくさん入っています。

 

顔画像フォルダから、顔以外の写真(花柄の服とかをご認識したりします。)、必要のない人物(男優)の写真、黒で切れすぎている写真、変に小さい写真を消します。

クオリティにこだわるならピンボケも消します。

(ピンボケをあぶりだすツールもあるので後日上手に作るコツで紹介します。)

 

素材との相性にもよりますが、完ぺきにマッチしたとしても700枚は必要です。

(同じような画像を複数よりもいろいろな画像を用意したいですね。)

基本的に目が死に気味になるので、表情をなるだけたくさん用意するとそれっぽくなる気がします。

素材不足→水増し、素材過多→厳選。

 

これをVIDEOB~FACESBでも行います。

 

次は顔と顔を変えるトレーニングをさせます。

 

MODELの歯車アイコンを押します。

GPUのメモリが4GB以下はlowmemを、それ以上あるならOriginalを。

GANとかもありますが、4GB以下は触れないですし、それ以上の方も今はあまり触る意味がありません。

バッチサイズを2の階乗で増やせば増やすほど学習速度が上がりますが、さらにメモリが必要になります。

1080ならバッチサイズ128、1050tiなら32くらいで回せます。

スタートするとAとBの顔画像がプレビューウインドウで出てきます。

トレーニングが進むにつれてloss値が下がり、画像も鮮明になってきます。

 

ただし、loss値=クオリティではありません。

loss値0.02くらいでSWAPして見れたものじゃないなら失敗です。

回してもダメなとこは改善しないので、Aを変えてBを増やすのがベターです。

 

モデルトレーニングがそれなりに終わったら、SWAPを押します。

デフォルトだとmergeフォルダに画像で出力されます。

この画像がそこそこの出来なら、MOVIEボタンを押してムービーにして完成です。

歯車からsync audioをチェックしておくとVideoAの音声が挿入される(はず)です。

 

CNNは浅い層のデータが流用可能ですので、次回は同じモデルデータを使っても学習速度が向上しているはずです。

 

こんな感じで使い方の解説を終わります。