如何进行AI换脸,AI换脸从 “0“ 到 “1” 详细教程 ——从配置环境开始
后續(xù)文章讀起來(lái)可能會(huì)影響觀看可以前往鄙人博客查看:http://www.anyuer.club/?id=199
 前言:
 本人吃計(jì)算機(jī)這口飯的,說(shuō)實(shí)話AI換臉很火的時(shí)候自己卻沒(méi)碰,挺吃虧的,最近時(shí)間比較充裕,整理了一下AI換臉的一個(gè)簡(jiǎn)單的流程,從 “0” 到 “1” 開(kāi)始吧
1.環(huán)境
 win10
64位
NVDRTX 3060
2.打開(kāi)GPU圖形設(shè)置
 win10設(shè)置打開(kāi)搜索——圖形設(shè)置
3.環(huán)境配置
 本AI換臉采用的GAN(計(jì)算機(jī)生成對(duì)抗網(wǎng)絡(luò)),其中比較優(yōu)秀的開(kāi)源工具有 DeepFace (本文采用)
DeepFace :https://github.com/iperov/DeepFaceLab
 windows環(huán)境下提供兩個(gè)下載地址,大家可以按照自己的配置按需下載(均需要翻墻):
mega :https://mega.nz/folder/Po0nGQrA#dbbttiNWojCt8jzD4xYaPw
 yandex : https://disk.yandex.ru/d/7i5XTKIKVg5UUg
 當(dāng)然了,如果你翻不起墻或者不方便,我這邊提供一個(gè)RTX 3060的版本
鏈接:https://pan.baidu.com/s/14dOUh0iaONHHK3jyXtIRbw?pwd=yuer
 提取碼:yuer
 4.安裝工具環(huán)境
 下載完成以后即為如此一個(gè)應(yīng)用程序,直接雙擊打開(kāi)
選擇好了路徑,直接extract即可,之后好像沒(méi)啥了,如果有啥一路點(diǎn)確認(rèn)即可
5.識(shí)別項(xiàng)目結(jié)構(gòu)
 我們要做的事情很簡(jiǎn)單,從一個(gè)001.mp4里面提取面部,再把提取出來(lái)的臉替換到002.mp4里面去,我們把001.MP4取名為源視頻,002.MP4取名為目標(biāo)視頻
—DeepFaceLab_NVIDIA_RTX3000_series
 --------_internal
 --------workspace #工作路徑
 ----------------data_dst #目標(biāo)視頻圖片存儲(chǔ)路徑——后面會(huì)講到
 ----------------data_src #源視頻圖片存儲(chǔ)路徑——后面會(huì)講到
 ----------------model #模型保存——后面會(huì)講到
 ----------------data_dst.mp4 #如上文002.MP4
 ----------------data_src.mp4 #如上文001.MP4
 --------(.*).bat
 6.所做事情大概是干什么
 從源視頻抽幀——把視頻一幀一幀換成圖片
從抽出來(lái)的圖片里面提取出面部信息
從目標(biāo)視頻抽幀——把視頻一幀一幀換成圖片
從目標(biāo)視頻抽出來(lái)的幀提取面部信息
利用算法進(jìn)行訓(xùn)練比如GAN(計(jì)算機(jī)生成對(duì)抗網(wǎng)絡(luò)等等)
訓(xùn)練完成以后生成面部圖片
生成出來(lái)的面部進(jìn)行替換,生成N張圖片
把圖片合起來(lái),即為生成的視頻
還是很空洞,沒(méi)關(guān)系實(shí)操一遍就好很簡(jiǎn)單!
6.2) extract images from video data_src.bat
 強(qiáng)調(diào)一下是從 2)開(kāi)始的,大家不用去運(yùn)行第一個(gè),后面會(huì)講!
運(yùn)行bat腳本——2) extract images from video data_src.bat
Enter FPS (?:help):
 這是讓你輸入FPS,好像是幀數(shù),如果記不起來(lái)可以像我一樣,啥都不輸入,直接留白,然后回車就會(huì)有默認(rèn)值 0
Output image format (png /jpg ?:help) :
 這個(gè)是抽幀,看你抽成png 還是 jpg ,你可以輸入,但也可以像我一樣,留白,啥都不輸入,回車也會(huì)有默認(rèn)值png
所以事情處理完成以后就會(huì)出現(xiàn)Done的字樣,這個(gè)時(shí)候再點(diǎn)擊關(guān)閉就好了
進(jìn)入文件夾worksho–>data_src 會(huì)有很多圖像,對(duì)!沒(méi)有錯(cuò),就是抽出來(lái)的人臉
6.3) extract images from video data_dst FULL FPS.bat
 運(yùn)行腳本——3) extract images from video data_dst FULL FPS.bat
Output image format ( png/jpg ?:help ) :
 這個(gè)很簡(jiǎn)單,直接輸入剛才選擇的類型即可,如果你完全按照我的操作來(lái)的,這里直接留白輸入回車即可
同樣出現(xiàn)了done的字樣即為完成
進(jìn)入文件夾worksho–>data_dst 也會(huì)有很多圖像
6.4) data_src faceset extract.bat
 運(yùn)行腳本——4) data_src faceset extract.bat
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
 [0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
 默認(rèn)留白,輸入回車即可
[wf] Face type ( f/wf/head ?:help ) :
 默認(rèn)留白,輸入回車即可
[0] Max number of faces from image ( ?:help ) :
 默認(rèn)留白,輸入回車即可
[512] Image size ( 256-2048 ?:help ) :
 默認(rèn)留白,輸入回車即可
[90] Jpeg quality ( 1-100 ?:help ) :
 默認(rèn)留白,輸入回車即可
[n] Write debug images to aligned_debug? ( y/n ) :
 默認(rèn)留白,輸入回車即可
655和654是人臉圖片數(shù)量
6.5) data_dst faceset extract.bat
 運(yùn)行腳本——5) data_dst faceset extract.bat
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
 [0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
 默認(rèn)留白,輸入回車即可
[wf] Face type ( f/wf/head ?:help ) :
 默認(rèn)留白,輸入回車即可
[512] Image size ( 256-2048 ?:help ) :
 默認(rèn)留白,輸入回車即可
[90] Jpeg quality ( 1-100 ?:help ) :
 默認(rèn)留白,輸入回車即可
出現(xiàn)done就完成了
和上一步非常相似,但是如果你進(jìn)入到
workspace\data_dst\aligned_debug看圖片就會(huì)看到一些比較新鮮的圖片——很明顯把人臉突出強(qiáng)調(diào)了對(duì)吧
 
6.6) train Quick96.bat
 運(yùn)行腳本——6) train Quick96.bat
deepface采用了不少的訓(xùn)練模式,這種就是相對(duì)來(lái)說(shuō)不那么吃配置,見(jiàn)效稍微快一點(diǎn)的
Running trainer.
[new] No saved models found. Enter a name of a new model :
 這里取個(gè)名字,建議取個(gè)簡(jiǎn)單的,主要是自己用來(lái)區(qū)分,我取名為 yuer 回車輸入了
Running trainer.
[new] No saved models found. Enter a name of a new model : yuer
 yuer
Model first run.
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
 [0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
 默認(rèn)留白,輸入回車即可
當(dāng)它運(yùn)行到一定程度以后
會(huì)出現(xiàn)一個(gè)新的小窗口,這窗口就是在不停的利用GAN進(jìn)行訓(xùn)練
這里就是生成圖片的預(yù)覽啦,點(diǎn)擊這個(gè)窗口,按P可以刷新
上面有介紹,但是我也看不懂了看了個(gè)大概
s:保存生成的預(yù)覽圖片
 p:刷新生成的預(yù)覽圖片
 enter:退出模型訓(xùn)練
 
訓(xùn)練了大概三分鐘,這個(gè)效果還是相對(duì)來(lái)說(shuō)不錯(cuò)的
這個(gè)時(shí)候可以按enter 退出了
退出以后cmd窗口也會(huì)出現(xiàn)done
6.7) merge Quick96.bat
 運(yùn)行腳本——7) merge Quick96.bat
這次看腳本名字就知道,生成 快速96 ,很明顯這次是要生成點(diǎn)圖片了。就是將訓(xùn)練的圖片換過(guò)去,生成新圖片
Running merger.
Choose one of saved models, or enter a name to create a new model.
 [r] : rename
 [d] : delete
[0] : yuer - latest
 :
 這里可能你出現(xiàn)的不是yuer,因?yàn)槊质亲远x的,但是latest告訴你的是上一次的訓(xùn)練模型,也就是quick96
可以直接回車,也可以輸入0,因?yàn)?是默認(rèn)值
Running merger.
Choose one of saved models, or enter a name to create a new model.
 [r] : rename
 [d] : delete
[0] : yuer - latest
 :
 0
 Loading yuer_Quick96 model…
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
 [0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
 默認(rèn)留白,輸入回車即可
Running merger.
Choose one of saved models, or enter a name to create a new model.
 [r] : rename
 [d] : delete
[0] : yuer - latest
 :
 0
 Loading yuer_Quick96 model…
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
 [0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
 0
Initializing models: 100%|###############################################################| 4/4 [00:00<00:00, 8.87it/s]
 ====================== Model Summary ======================
 == ==
 == Model name: yuer_Quick96 ==
 == ==
 == Current iteration: 734 ==
 == ==
 -------------------- Model Options --------------------
 == ==
 == batch_size: 4 ==
 == ==
 --------------------- Running On ----------------------
 == ==
 == Device index: 0 ==
 == Name: NVIDIA GeForce RTX 3060 Laptop GPU ==
 == VRAM: 3.41GB ==
 == ==
 
[y] Use interactive merger? ( y/n ) :
 切記,這里輸入 n,雖然輸入y也可以,但是我不會(huì)
[y] Use interactive merger? ( y/n ) : n
 Choose mode:
 (0) original
 (1) overlay
 (2) hist-match
 (3) seamless
 (4) seamless-hist-match
 (5) raw-rgb
 (6) raw-predict
[1] :
 默認(rèn)留白,輸入回車即可
Choose mask mode:
 (0) full
 (1) dst
 (2) learned-prd
 (3) learned-dst
 (4) learned-prdlearned-dst
 (5) learned-prd+learned-dst
 (6) XSeg-prd
 (7) XSeg-dst
 (8) XSeg-prdXSeg-dst
 (9) learned-prdlearned-dstXSeg-prd*XSeg-dst
[1] :
 默認(rèn)留白,輸入回車即可
[0] Choose erode mask modifier ( -400…400 ) :
 默認(rèn)留白,輸入回車即可
[0] Choose blur mask modifier ( 0…400 ) :
 默認(rèn)留白,輸入回車即可
[0] Choose motion blur power ( 0…100 ) :
 默認(rèn)留白,輸入回車即可
[0] Choose output face scale modifier ( -50…50 ) :
 默認(rèn)留白,輸入回車即可
Color transfer to predicted face ( rct/lct/mkl/mkl-m/idt/idt-m/sot-m/mix-m ) :
 默認(rèn)留白,輸入回車即可
Choose sharpen mode:
 (0) None
 (1) box
 (2) gaussian
[0] ( ?:help ) :
 默認(rèn)留白,輸入回車即可
[0] Choose super resolution power ( 0…100 ?:help ) :
 默認(rèn)留白,輸入回車即可
[0] Choose image degrade by denoise power ( 0…500 ) :
 默認(rèn)留白,輸入回車即可
[0] Choose image degrade by bicubic rescale power ( 0…100 ) :
 默認(rèn)留白,輸入回車即可
[0] Degrade color power of final image ( 0…100 ) :
 默認(rèn)留白,輸入回車即可
[16] Number of workers? ( 1-16 ?:help ) :
 默認(rèn)留白,輸入回車即可
6.8) merged to mp4.bat
 運(yùn)行腳本——8) merged to mp4.bat
最后一步生成視頻,把剛才的圖片合并成視頻
[16] Bitrate of output file in MB/s :
 默認(rèn)留白,輸入回車即可
出現(xiàn)done以后
7.查看生成的視頻
 workspace文件夾下的result.MP4就是生成的視頻文件
因?yàn)槲沂菫榱藢懖┛?#xff0c;所以訓(xùn)練的時(shí)間不夠長(zhǎng)生成出來(lái)的視頻效果不太好,大家訓(xùn)練的時(shí)候,訓(xùn)練個(gè)三五天,生成出來(lái)的視頻杠杠好!
8.一些細(xì)節(jié)
如果你在6.7)卡著很久都不動(dòng)
Use interactive merger? ( y/n ) :
 這里你不輸入n,輸入y
[16] Number of workers? ( 1-16 ?:help ) :
 留白回車
等到程序輸出完以下信息后
會(huì)出現(xiàn)這個(gè)窗口
按一下Tab,會(huì)出現(xiàn)以下預(yù)覽,這個(gè)時(shí)候,再Tab回去關(guān)閉窗口,cmd控制臺(tái)窗口也關(guān),再重新運(yùn)行6.7)腳本,輸入n就好了
總結(jié)
以上是生活随笔為你收集整理的如何进行AI换脸,AI换脸从 “0“ 到 “1” 详细教程 ——从配置环境开始的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 快手 (kuaishou.net) 2.
- 下一篇: DSP28335入门教程:ADC的使用
