前言
DeepFaceLab是一種基于深度學習的人臉合成和轉(zhuǎn)換工具。它使用了深度神經(jīng)網(wǎng)絡(luò)來分析和修改圖像中的人臉部分,可以實現(xiàn)將一個人的臉部特征應(yīng)用到另一個人的照片上,或者進行面部表情、年齡、性別等特征的變換。
DeepFaceLab具備一系列核心功能,包括人臉檢測、關(guān)鍵點定位、面部表情識別和特征提取。這些功能為其提供了生成高質(zhì)量合成人臉的能力,并支持多種輸入和輸出格式。用戶可以根據(jù)自身需求對其可配置的參數(shù)進行調(diào)整,以定制模型的訓練和處理流程。此外,DeepFaceLab還充分支持GPU加速,從而顯著提升處理速度。
然而,需要特別留意的是,DeepFaceLab等工具也存在被濫用的風險,用以制作虛假的圖片和視頻。因此,在使用這類工具時,必須嚴格遵守法律法規(guī),同時秉持高度的道德準則。這類技術(shù)的濫用可能會引發(fā)倫理和法律問題,因此用戶在使用時應(yīng)謹慎考慮,深入了解相關(guān)法律規(guī)定,并嚴守道德操守。
一、DeepFaceLab安裝
可以從官方網(wǎng)站得軟件下載地址,找到對應(yīng)自己GPU的版本就可以了,GPU不是RTX30頭的選RTX2080Ti版本,RTX30xx以上選RTX3000這個版本。
下載之后直接解壓到使用目錄就可以了,解壓完成之后像下面這樣,不過有幾個中文是我后加的。
二、數(shù)據(jù)準備
1.源視頻
源視頻就是用來訓練模型的視頻,源視頻選擇合適的素材是關(guān)鍵。要確保素材清晰、高質(zhì)量,以獲得最佳效果。可以使用高分辨率的相機來拍攝或選擇高質(zhì)量的庫存視頻。
- 不同角度:拍攝素材時,考慮使用不同的角度,如近景、遠景、正臉和側(cè)臉,以提供多樣性和視覺吸引力。
- 不同視角:例如低視角或仰視角。
- 不同光線:根據(jù)需要選擇適當?shù)臅r間和光線條件,以便拍攝白天和黑夜的素材。
- 不同表情:使用面部表情、姿勢和背景來傳達喜怒哀樂,選擇不同的情感表達。
- 時長:源視頻的時長越長越好,最短也要幾分鐘以上。
2.目標視頻
目標視頻就是最終要進行換臉的視頻,?標視頻處理?較簡單些,正常的視角就可以了,但為了換臉絲滑,源視頻和目標視頻盡可能選擇臉型、表情、?度、光源接近的。
3.數(shù)據(jù)重命名
把源視頻和目標視頻放到項目workspace下,源視頻重新命名成data_src,目標視頻重新命名成data_dst,如下圖結(jié)果:
三、模型訓練
1.源視頻拆分
運行 2) extract images from video data_src.bat文件,對源視頻進行拆幀:
一秒保存多少幀:
Enter FPS 一秒保存多少幀,一般保存10到15幀
保存圖像的格式:
Output image format
圖像格式選擇:
PNG:PNG格式提供無損圖像質(zhì)量,適合保持圖像的清晰度和細節(jié),但文件大小較大。如果您需要高質(zhì)量的圖像,可以選擇PNG格式
JPG:JPG格式文件大小較小,適合處理不需要極高圖像質(zhì)量的任務(wù)。如果對圖像質(zhì)量要求不高,可以選擇JPG格式,以便減小文件大小。
2.目標視頻切圖
對目標視頻進行拆分,運行 3) extract images from video data_dst FULL FPS.bat,選擇跟源視頻一樣。拆分完成之后在工作目錄就多了兩個拆分成圖像的目錄。
3.源視頻切臉
點擊運? 4) data_src faceset extract.bat 會有參數(shù)需要設(shè)置,如圖:
-
選擇臉型:
有三個選項可供選擇:全臉(f)、整臉(wf)和頭(head)。根據(jù)您的需求,一般情況下選擇默認的wf即可,因為它覆蓋的面積更大,包括額頭和胡子。如果只需要替換臉部到眉毛上方一點點的區(qū)域,您可以選擇f。 -
設(shè)置最多識別的人數(shù):
如果視頻大部分時間只有一個人,選擇1;如果視頻中有兩個人同時出現(xiàn),而且都需要處理,選擇2。 -
設(shè)置圖像大?。?br> 一般情況下,選擇256足夠了。較高的分辨率會提高圖像質(zhì)量,但也會增加計算資源的消耗。如果原始視頻質(zhì)量不高,即使選擇512也不會有很大幫助。
-
圖像質(zhì)量:
默認的圖像質(zhì)量設(shè)置為90,通常足夠了。根據(jù)需要,您可以微調(diào)這個設(shè)置。 -
調(diào)試圖像:
如果出現(xiàn)錯誤或不滿意的結(jié)果,可以隨時刪除不符合要求的圖像。
6.運行腳本:
完成設(shè)置后,運行腳本。根據(jù)您的硬件,3080顯卡切臉速度大概為2張/秒。
5.源視頻人臉整理
運行 4.2)data_src sort.bat 腳本以對源圖像進行排序。需要對源圖像進行排序、篩選和處理,以獲得高質(zhì)量的訓練素材。
-
源頭像排序:
選擇 “5-顏色直方圖排序” 以幫助識別相似的圖像。 -
篩選圖像:
- 刪除模糊的圖像,這些通常不適合用于訓練。
- 刪除因旋轉(zhuǎn)而變形的圖像,因為它們通常是由于識別失敗導致的。
- 刪除殘缺的圖像,如部分遮擋或損壞的圖像。
- 刪除有遮擋或黑邊裁切的圖像。
- 刪除劉海太大或與人物無關(guān)的圖像。
- 刪除光照差異較大的圖像,因為這些圖像可能對訓練產(chǎn)生不良影響。
- 如果某些圖像是常見的遮擋物,但資源稀缺,可以保留它們用于遮罩訓練。
-
手動修復識別不準確的圖像:
- 如果某些圖像非常寶貴,并且識別不準確,您可以手動刪除 “debug” 目錄中相應(yīng)的錯誤圖像,并運行 “data_src faceset extract MANUAL.bat” 腳本再次提取素材。
-
可選的模糊程度排序:
- 可以運行排序腳本,將圖像按照模糊程度進行排序。然后,您可以刪除模糊度過高的圖像。不過,有些人認為適度模糊的圖像也可以用于訓練,這取決于您的需求。
-
處理多個人臉:
- 如果 “aligned” 目錄中包含多個人臉,建議使用顏色直方圖排序,然后將不同的人臉歸類到不同的文件夾中以備用?;蛘?,刪除不需要進行人臉替換的人臉。您還可以使用人臉篩選工具來幫助進行分類和處理。
這些步驟有助于準備高質(zhì)量的訓練素材,提高DeepFaceLab的換臉效果。請根據(jù)您的具體需求和素材情況進行適當?shù)暮Y選和整理。
6.目標視頻切臉
運? 5) data_dst faceset extract.bat 對目標視頻進行切臉,參數(shù)與源視頻切臉差不多。
7.目標視頻圖像整理
執(zhí)行 5.2) data_dst sort 腳本對目標視頻頭像進行整理
-
推薦使用顏色直方圖排序:
- 在提取素材時,建議選擇 “5-顏色直方圖排序” 以幫助識別相似的圖像。這有助于歸類不同的人臉到不同的文件夾,或刪除您不想進行人臉替換的圖像,特別是模糊或無法清晰辨認的圖像。
-
處理難以識別的圖像:
- 如果源圖像包含極端仰臉、側(cè)臉或其他難以識別的情況,可以考慮刪除這些圖像。您還可以復制一份到 “src” 的 “aligned” 目錄,用于個人訓練或嘗試補充極端角度的素材。
-
處理有遮擋的圖像:
- 對于有遮擋的圖像,不要立即刪除它們,因為它們可能需要用于人臉替換。這些圖像可以用于訓練模型以處理遮擋情況。
-
修復臉部輪廓識別錯誤的圖像:
- 如果某些圖像的臉部輪廓識別錯誤,您可以手動進行修復。首先,在 “Debug” 目錄中刪除相應(yīng)的圖像,然后運行 “data_dst extract faces MANUAL RE-EXTRACT DELETED RESULTS DEBUG.bat” 腳本。此腳本會提示進行區(qū)域調(diào)整,以修復臉部識別錯誤的問題。
-
注意關(guān)于"aligned"目錄的重要性:
- 請記住,“aligned” 目錄下的所有人臉最終都將用于替換 “src” 目錄中的人臉。如果您保留了多個人臉,可能會導致生成多胞胎效果。
三、模型訓練
1. 快速訓練
初學者或配置有限,可以使用輕量級訓練腳本 “train Quick96.bat”。這個腳本通常不需要進行復雜的參數(shù)設(shè)置。以這個腳本通常使用默認的訓練參數(shù),適合初學者或那些希望快速進行訓練的人。
如果希望進行更高級的訓練,需要進行更多的參數(shù)設(shè)置和調(diào)整。對于初學者,使用 “train Quick96.bat” 是一個不錯的起點,可以幫助快速了解DeepFaceLab的工作流程,但在更高級的項目中可能需要更多的自定義設(shè)置和調(diào)整。
但train Quick96.bat訓練出來的模型不能導出模型應(yīng)用到Deepfacelive直播換臉上。
2. SAEHD和AMP
這兩種訓練方式需要設(shè)置的參數(shù)很多,訓練過程很緩慢,但效果是最好的。
3.遷移學習
但通常的做法是,找一個效果不錯的預訓練模型進行訓練,以減少訓練的時間與更快更好的獲取訓練效果,但預訓練模型的缺點是不能更改分辨率。
-
預訓練模型:
- 初始階段,建議使用預訓練模型,以減少訓練時間并提高效果。
-
batch_size:
- batch_size 參數(shù)控制每個訓練批次的圖像數(shù)量??梢愿鶕?jù)硬件性能和需求來調(diào)整它,例如從默認值4更改為16。
-
模型架構(gòu)選擇:
- 可以選擇不同的模型架構(gòu),如DF(DeepFace)五官結(jié)構(gòu)、LIAE(Light Image Augmentation Enhancement)等。每個架構(gòu)有其特點,可以根據(jù)需要選擇適合的。
-
輸入的寬度:
- 可以配置不同層的寬度,例如設(shè)置中間瓶頸層為256、編碼解碼層為64。遮罩層的寬度通常是解碼層寬度的三分之一。
-
Eyes and mouth priority:
- 如果有閉眼或張嘴的素材,可以啟用 “Eyes and mouth priority” 以提高生成的準確性。
-
學習率丟棄:
- 在訓練停滯時,可以開啟 “Use learning rate dropout” 以幫助模型再次學習。
-
Enable random warp of samples:
- 在訓練的早期階段,可以啟用 “Enable random warp of samples” 以增加訓練的難度,后期可以關(guān)閉。
-
GAN設(shè)置:
- 可以調(diào)整配置參數(shù),如 “GAN power” 和 “GAN dimensions” 來控制生成器對抗網(wǎng)絡(luò)的性能。
-
顏色處理:
- 使用 “color transfer” 來改善光影變化不足。您還可以考慮收集更多具有不同光影下的SRC素材。
-
梯度裁剪:
- 必須開啟 “Enable gradient clipping” 以防止梯度爆炸問題。
-
Loss參數(shù):
- 調(diào)整 “src/dst loss” 參數(shù)以控制損失的權(quán)重。預覽圖中的藍色和黃色分別代表SRC和DST。
-
Masked training:文章來源:http://www.zghlxwxcb.cn/news/detail-753022.html
- “masked_training” 設(shè)置為 True 意味著只學習蒙板內(nèi)的區(qū)域。
這些設(shè)置將影響訓練的結(jié)果和速度,可以根據(jù)您的具體需求進行調(diào)整。
當設(shè)置完成之后,下面開始跑出時間,就代表已在訓練了:
在訓練過程中,會顯示訓練的結(jié)果,按P鍵可以看到下一迭代的效果。文章來源地址http://www.zghlxwxcb.cn/news/detail-753022.html
到了這里,關(guān)于AI直播換臉——DeepFaceLab 3.0模型訓練與微調(diào)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!