前言
警告! 本篇文長廢話多,若只是想快速地實作換臉,在環境建置完後按照初級加粗步驟操作即可。
發這篇文的目的主要是想讓大家對所謂"換臉"多一分了解,以另一種輕鬆陽春的方式讓大家提起對"深度學習"的興趣。如果你滿溢的正義感讓你想要順著網路線過來砍我,請你先冷靜下來繼續看下去,以本篇的教學內容深度而言,不論你原本學換臉的目的為何,最後出來的成果都只能是搞笑影片(淚)。
環境建置
首先進入DFL的下載頁 https://github.com/iperov/DeepFaceLab ,然後瘋狂下拉到釋出版本(Releases),依據電腦配置選擇下載項目,以Windows舉例,magnet link的連結去安裝µTorrent後就能下載,載下來解壓後只會有一個DeepFaceLab_NVIDIA資料夾是正常的,若是用Mega下載,電腦顯卡是N牌就下載NVIDIA build,不是N牌就點1.0資料夾進去載OpenCL build (也有CUDA build供選),載完後解壓縮就完成環境建置了......免安裝賽高(。◕∀◕。)
初級(69式)
1.改名:
點開進去workspace資料夾裡面,將目標影片放入後改名為data_dst,放入來源影片改名為data_src。
假設我想做一支Poping街舞影片然後把舞者的臉換成馬保國(閃電5連鞭),那有馬保國臉的影片就是來源影片,而那支要被換臉的街舞影片就是目標影片,把自己要做的影片丟進去替換掉範例素材即可。
碎碎念: 用原來資料夾附的範例影片做出的成品會讓人挺有成就感,但是一旦你將範例影片換成自己的素材,要考慮的因素便會無限增加,下面心得會統整。
2.解離:
回上一層找到 2) extract images from video data_src 點兩下運行,完成後找到 3) extract images from video data_dst 點兩下運行。
除了問你要用顯卡還是CPU做運算要輸入0之外,其他問題不管看不看得懂全部按ENTER,然後程式開始跑你就可以去做其他事惹,等跑完再回來關掉。
碎碎念: 這一步的用意就是把兩部影片像動畫一樣一偵一偵的拆成圖片。
3.臉部抽離:
找到 4) data_src faceset extract 點兩下運行,完成後找到 5) data_dst faceset extract 點兩下運行。
同第2步,除了問GPU外你只需要一直按ENTER然後給他跑。
碎碎念: 這一步的用意是把前一步的分解圖臉的部分抽取出來,畢竟要換的只有臉。
4.學習:
找到 6) train Quick96 點兩下運行,跑到滿意後進下一步。
同第3步,開始運行後你會看到下面的圖,從左到右,第1跟第3徘是原本影片的表情,第2跟第4徘是目前電腦辨識表情的程度(跟1&3徘越像越好),第5徘就是你現在結束學習後會得到的換臉成果,按P鍵可以刷新2&4&5徘顯示最新學習成果,Iter就是電腦學習的次數。
碎碎念: 感覺有點像電腦在分辨學習1&3徘在做啥表情,學習成果展現在2&4徘,然後將他認為在做一樣表情的臉開始嘗試替換輸出成5徘。快槍69式講求的是低品質跟快速學習,所以在學習到一定次數後,就能感受出第5徘不管怎樣都不會再進步,這時就要果斷停止進下一步,我第1次Run學習給他花了1天半學了36萬次,但是結果出來跟學了12萬次一樣完全沒差....。
5.融合:
找到 7) merge Quick96 點兩下運行,完成後找到 8) merged to XX 點兩下運行輸出成自己像要的影片格式,result影片會出現在workspace資料夾裡。
同前面幾步,會按ENTER就好,7)是將學習成果開始融合,一偵一偵的把臉換掉,而8)的部分你會看到mp4啊~avi啊,看自己想輸出什麼格式給他點下去就對了,等他跑完就能看到自己辛苦的成果了。
心得
自己做了許多嘗試的結論是,目標影片不要太長,會跑很久......來源影片的表情要盡量多,至少目標影片有做的表情都要盡量有,像原始範例影片之所以能把臉換如此絲滑就是因為表情少,動作也不大,抬頭低頭左看右看也很容易出破綻。
以下面的圖來說,因為來源影片沒有左上第3徘露齒嘟嘴唇低吟的表情(會有才怪),頭髮也遮了半臉,所以可以看到儘管我學習了約14萬次,出來的結果(第5徘)依舊是章魚哥。
右邊上面情況的影響點,除了頭髮遮半臉外,抬頭動作容易糊糊,我的來源影片也沒有漏鼻孔翻白眼的表情,而右下之所以會怪怪的主因是陰影....沒錯就連打光都能影響成果,而皺眉這種細微的動作以69式的分辨率來講電腦是學不懂的(๑•́ ₃ •̀๑)
相信你各位應該能理解為啥我說你學換臉的動機不重要,因為出來的結果只能是搞笑影片....道德淪喪跟社會風氣敗壞的起源不會是這篇廢文,另外69式的學習次數控制在9萬~15萬之間即可,再學下去的意義不大,看看右邊學習了21萬次又怎樣,一抬頭照樣糊成麻糬。゚ヽ(゚´Д`)ノ゚。
換臉技術勃大莖深,69式是其中對硬體環境跟知識儲備需求最低的換臉方式,顯卡很爛? 那就用CPU一樣跑得嚇嚇叫,看不懂英文YT教學? 你只要會按ENTER就好,但缺點也隨之而來,即前面提到的速度快品質低,Quick96跟SAEHD相比,就像國民健康操比之少林武功,學的再多再久還是健康操,若大家對換臉的接受度還行,或許會再打一篇中級(HD式),和大家探討一些正常的非低能向的操作。