FaceSwap
FaceSwap官網(wǎng),Face Swap視頻AI換臉工具軟件
什么是FaceSwap?
FaceSwap是目前GitHub上開源的使用比較多的AI換臉工具,要求NVIDIA顯卡CUDA計(jì)算能力在3.5以上;目前手里的RTX3080計(jì)算能力是8.6。Swapface AI工具是一個(gè)輕量級、超現(xiàn)實(shí)且實(shí)時(shí)的視頻換臉的黑科技工具。
FaceSwap官網(wǎng): https://faceswap.dev/
安裝包下載地址: https://github.com/deepfakes/faceswap/releases

FaceSwap怎么樣?
它使用先進(jìn)的人工智能和計(jì)算機(jī)視覺技術(shù),可以在幾秒內(nèi)為你的視頻生成逼真的面部替換效果。無需任何復(fù)雜的參數(shù)設(shè)置,你只需要上傳視頻和照片,點(diǎn)擊一下按鈕,Swapface AI工具就可以自動檢測面部特征并將其映射到視頻中。
目前僅支持win系統(tǒng),后續(xù)有mac會及時(shí)更新。下載包有使用教程,大家有興趣自行下載觀看就可以了。
Swapface 生成的面部替換效果超級逼真和自然。它使用的人工智能與計(jì)算機(jī)視覺技術(shù)可以高精度檢測面部特征并映射,創(chuàng)建高度精確的面部變形效果。這可以為你的作品帶來劇院級的視覺體驗(yàn)。
FaceSwap 可以通過一張照片,創(chuàng)建三維人臉模型,然后再用這個(gè)3D模型,逼近現(xiàn)實(shí)中攝像頭前面的人臉。其結(jié)果就是,三維人臉隨著實(shí)驗(yàn)者的移動以及表情的變化而移動或變化。
整個(gè)過程的核心是根據(jù)照片形成3D人臉模型。主要用到了Candide3的3維人臉模型,DLib庫的人臉二維特征點(diǎn)檢測,和OpenGL的一些繪制方法
FaceSwap是目前GitHub上開源的使用比較多的AI換臉工具,要求NVIDIA顯卡CUDA計(jì)算能力在3.5以上;目前手里的RTX3080計(jì)算能力是8.6。
下載安裝包
- https://github.com/deepfakes/faceswap/releases
$ wget https://github.com/deepfakes/faceswap/releases/download/v2.0.0/faceswap_setup_x64.exe
這個(gè)安裝程序可以包辦一切,如果安裝失敗則多嘗試幾次,可能是網(wǎng)絡(luò)不順暢導(dǎo)致的。
但也可以手動分步驟安裝:
- 安裝Git
- 安裝Miniconda3
- 創(chuàng)建Python3.10.6虛擬環(huán)境
- 安裝faceswap源碼并安裝
$ git clone https://github.com/deepfakes/faceswap.git
$ cd faceswap/
$ conda activate faceswap
$ pip3 install -r requirements/requirements_cpu.txt
$ pip3 install -r requirements/requirements_amd.txt
$ pip3 install -r requirements/requirements_nvidia.txt
$ python faceswap.py -h
$ python faceswap.py gui # GUI方式
使用方法
它工作大致分為四個(gè)步驟:
- 收集素材:包括圖片和視頻
- 提取(Extraction):對素材進(jìn)行人臉提取作為訓(xùn)練集
- 訓(xùn)練(Training):根據(jù)提取的人臉進(jìn)行訓(xùn)練
- 轉(zhuǎn)換(Convert):根據(jù)訓(xùn)練模型結(jié)果完成替換
可以通過命令行操作,也可以通過GUI操作,建議使用GUI。
提取(Extract)
準(zhǔn)備幾個(gè)目錄:
- src/video1.mp4: 用于被換臉的原始視頻
- src-extract/: 提取的原始人臉圖片文件
- dst/video2.mp4:用于換臉的替換視頻
- dst-extract/:用于替換人臉的替換圖片文件
- model/: 訓(xùn)練模型保存目錄
- result/: 轉(zhuǎn)換結(jié)果保存目錄
$ python faceswap.py extract -i ./src/video1.mp4 -o ./src-extract
$ python faceswap.py extract -i ./dst/video1.mp4 -o ./dst-extract
提取后的結(jié)果,不但會有大量根據(jù)每幀導(dǎo)出的人臉圖片文件,還會有一個(gè).fsa
對齊文件,這個(gè)對齊文件記錄了每個(gè)人臉信息在原始視頻中的幀對應(yīng)位置信息。
但剛才只是初步提取人臉,還需要人工參與進(jìn)來進(jìn)行微調(diào),比如原始視頻里面出現(xiàn)多個(gè)人臉,但我們只想替換某個(gè)人,那么:
- 在GUI中的【Tools】選擇【Sort】對人臉進(jìn)行排序,因?yàn)閳D片文件可能很多,排序后刪除不需要的人臉圖片文件,保留在1000~10000個(gè)圖片文件比較好
- 在GUI中的【Tool】選擇【Alignment】根據(jù)清理后的人臉圖片文件來自動清理對齊文件,因?yàn)槲覀冏罱K轉(zhuǎn)換的時(shí)候是通過對齊文件對原始視頻轉(zhuǎn)換的
這樣處理后,我們的人臉圖片文件目錄和對齊文件里面都應(yīng)該是我們確實(shí)準(zhǔn)備用來訓(xùn)練進(jìn)行替換的信息了,但如果想要更好的替換效果,還需要人工介入:
- 在GUI中【Tools】選擇【Manual】根據(jù)原始視頻和對齊文件,挨幀進(jìn)行臉部信息微調(diào),對某些自動人臉識別不到位的地方調(diào)整,保存對齊文件
- 在刪除之前生成的提取人臉圖片文件,重新根據(jù)對齊文件再次提取出人臉圖片文件,這就是最終的訓(xùn)練集圖片文件了
對原始視頻、目標(biāo)替換視頻兩個(gè)都做同樣的操作,目的是拿到我們滿意的人臉圖片文件,用于訓(xùn)練。
訓(xùn)練(Train)
$ python faceswap.py train -A ./src-extract -B ./dst-extract -m ./model/
這個(gè)過程可能會很久,在GUI中可以通過預(yù)覽圖片看到替換后的效果進(jìn)行評估,當(dāng)訓(xùn)練到缺失值(Loss)小于0.02時(shí),效果已經(jīng)比較好了,可以隨時(shí)停止和再次啟動訓(xùn)練,這個(gè)過程是可以反復(fù)進(jìn)行的。
轉(zhuǎn)換(Convert)
$ python faceswap.py convert -i ./src/video1.mp4 -m ./model/ -o ./converted/
因?yàn)槟J(rèn)原始視頻的對齊文件和它在同一個(gè)目錄下,它會自動尋找這個(gè)對齊文件,然后根據(jù)訓(xùn)練的模型結(jié)果對原始視頻進(jìn)行替換,得到轉(zhuǎn)換后的視頻。
- 視頻轉(zhuǎn)為圖片與合成(
ffmpeg
):
$ python tools.py effmpeg -h
$ ffmpeg -i src/video.mp4 src-extract/video-frame-%d.png
$ ffmpeg -i video-frame-%0d.png -c:v libx264 -vf "fps=25,format=yuv420p" src.mp4
在GUI中進(jìn)行轉(zhuǎn)換的時(shí)候選擇effmpeg
就自動完成視頻的合成。
轉(zhuǎn)載自這里:
https://mp.weixin.qq.com/s/Kh4roFAq5uOAw4VJRceDLQ
數(shù)據(jù)評估
本站OpenI提供的FaceSwap都來源于網(wǎng)絡(luò),不保證外部鏈接的準(zhǔn)確性和完整性,同時(shí),對于該外部鏈接的指向,不由OpenI實(shí)際控制,在2023年 5月 31日 上午8:36收錄時(shí),該網(wǎng)頁上的內(nèi)容,都屬于合規(guī)合法,后期網(wǎng)頁的內(nèi)容如出現(xiàn)違規(guī),可以直接聯(lián)系網(wǎng)站管理員進(jìn)行刪除,OpenI不承擔(dān)任何責(zé)任。