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