開(kāi)始實(shí)驗(yàn)前疲吸,請(qǐng)確保你的機(jī)器硬件達(dá)到要求座每。內(nèi)存推薦8GB以上,如果低于4GB.....建議你升級(jí)一下配置再來(lái)做這個(gè)實(shí)驗(yàn)摘悴。因?yàn)槟P陀?xùn)練的過(guò)程中需要依賴GPU峭梳,所以你的顯卡顯存至少得達(dá)到4GB,不然可能跑不動(dòng)這個(gè)程序蹂喻。
環(huán)境搭建
1.首先需要安裝的便是這個(gè)能讓你傻瓜式換臉的應(yīng)用FakeApp了葱椭,點(diǎn)擊鏈接進(jìn)入官網(wǎng)。安裝過(guò)程中并沒(méi)有什么值得特殊強(qiáng)調(diào)的地方口四,咱們一筆跳過(guò)孵运。
2.接下來(lái)就是和GPU相關(guān)的CUDA8了,選擇相應(yīng)的系統(tǒng)版本便可以下載安裝蔓彩。在安裝方式這一步建議大家使用本地安裝exe[local]
的方式治笨,exe[network]
的安裝方式....可能有點(diǎn)慢。默認(rèn)情況下CUDA會(huì)自動(dòng)幫你添加到環(huán)境變量赤嚼,如果沒(méi)有旷赖,請(qǐng)手動(dòng)添加,這一步非常重要更卒。
至此等孵,所有和環(huán)境相關(guān)的部署咱們已經(jīng)大功告成了。
應(yīng)用簡(jiǎn)介
先簡(jiǎn)單介紹一下FakeApp的三個(gè)模塊
GET DATASET
:獲取數(shù)據(jù)集蹂空,在這一步中俯萌,你的素材視頻將被逐幀切割成圖片,程序會(huì)自動(dòng)識(shí)別并提取出圖片中人物的面部數(shù)據(jù)上枕。
TRAIN
:訓(xùn)練模型绳瘟,根據(jù)第一步中生成的數(shù)據(jù)集,機(jī)器會(huì)自動(dòng)地幫你訓(xùn)練模型姿骏,從而進(jìn)行面部的替換糖声。
CREATE
:生成視頻,這一步便是整個(gè)實(shí)驗(yàn)中最為神奇的地方,他能根據(jù)你訓(xùn)練出的模型蘸泻,將給定視頻素材中人物的面部進(jìn)行替換琉苇,最后生成替換后的視頻。
開(kāi)始實(shí)驗(yàn)
1.第一步悦施,生成數(shù)據(jù)集
先創(chuàng)建一個(gè)文件夾fake
并扇,將素材視頻存放進(jìn)去
咱們姑且用A和B來(lái)區(qū)分這兩個(gè)小姐姐好了,按照FakeApp的提示抡诞,將素材路徑填入穷蛹,點(diǎn)擊EXTRACT,接下來(lái)無(wú)需任何操作昼汗,等程序跑完就行了肴熏。你會(huì)看到
fake
文件夾中多出了一個(gè)dataset-A
的目錄,這便是我們待會(huì)兒訓(xùn)練模型時(shí)需要的數(shù)據(jù)集了顷窒。A的訓(xùn)練集生成后蛙吏,重復(fù)這一步驟,生成B的訓(xùn)練集鞋吉。至此鸦做,咱們第一步結(jié)束了。2.第二步谓着,訓(xùn)練模型
在這一步開(kāi)始前泼诱,你需要在fake
文件中創(chuàng)建一個(gè)model
目錄,這里會(huì)存放模型文件赊锚。和之前一樣治筒,依次填入文件夾路徑,下面的參數(shù)無(wú)需修改改抡,使用默認(rèn)配置即可矢炼。點(diǎn)擊TRAIN系瓢,等待程序初始化后阿纤,會(huì)彈出一個(gè)預(yù)覽框,這時(shí)夷陋,你幾乎可以高枕無(wú)憂了欠拾。剛開(kāi)始你會(huì)發(fā)現(xiàn)預(yù)覽框最右側(cè)的一列會(huì)非常模糊,不要緊骗绕,模型才剛開(kāi)始訓(xùn)練藐窄。Loss A和Loss B代表模型的差異值,咱們無(wú)需關(guān)注數(shù)值產(chǎn)生的原理酬土,你只需要知道荆忍,兩者之差越小,說(shuō)明模型訓(xùn)練的越好。
訓(xùn)練模型是一個(gè)很耗時(shí)間的活兒刹枉,以我為例叽唱,每個(gè)數(shù)據(jù)集各350張左右的面部圖像,訓(xùn)練了大概13個(gè)小時(shí)微宝,差異值穩(wěn)定在了0.1%左右棺亭。如果你想要更好的效果,建議每個(gè)數(shù)據(jù)集不低于500張蟋软,至于如何確定數(shù)據(jù)集的大小镶摘,可以看上面的示例圖A,圖中的360代表
dataset-A
的數(shù)據(jù)量岳守。值得一提的是凄敢,訓(xùn)練進(jìn)度會(huì)被實(shí)時(shí)保存下來(lái),也就是說(shuō)你可以隨時(shí)暫停訓(xùn)練棺耍,在預(yù)覽窗口中贡未,輸入英文小寫(xiě)字母q即可保存退出,下次想要繼續(xù)訓(xùn)練的話蒙袍,打開(kāi)FakeApp再點(diǎn)擊TRAIN即可俊卤。
——-———————————分割線——-———————————
13個(gè)小時(shí)過(guò)去了,最右一列已經(jīng)十分清晰了害幅,效果也令人滿意消恍,要不咱們先合成一個(gè)視頻試試?——-———————————分割線——-———————————
3.在model
中填入我們先前訓(xùn)練好的模型路徑,Video
則填入你想要替換的視頻路徑以现,依舊是傻瓜式狠怨,點(diǎn)擊CREATE,稍安勿躁邑遏,讓GPU飛一會(huì)兒~程序跑完后佣赖,你應(yīng)該就能在fake
文件中看到生成的swap.mp4
文件了,讓我們通過(guò)視頻截圖记盒,看看效果如何憎蛤。
總的來(lái)說(shuō)效果還是令人滿意的,雖然看起來(lái)有點(diǎn)違和纪吮,但絕對(duì)可以以假亂真俩檬。好了,至此咱們的簡(jiǎn)易教程就告一段落了碾盟,如果你有什么問(wèn)題歡迎留言討論.