這肌肉換臉視頻,怎么實(shí)現(xiàn)的?
最近有 b 友給我推了個(gè) b 站的視頻:肌肉金輪,問我如何實(shí)現(xiàn)這種視頻里面換臉的?
我說網(wǎng)上有相關(guān)教程,你去搜一下,他說看的云里霧里,能不能讓我用小帥b的風(fēng)格,出一期通熟易懂的,讓人看完就會(huì)操作的那種。
我回了句:這...是要干嘛?得不到女神就要自己創(chuàng)造么?
他說:絕無可能!
嗯,我信了!
那么,如何實(shí)現(xiàn)將視頻中的臉蛋換成自己希望的樣子呢?
接下來就是,學(xué)習(xí) Python 的正確姿勢(shì):
假設(shè)現(xiàn)在你想把老羅的臉,換到視頻中肌肉男的身上,流程應(yīng)該是這樣的:
1、
拿到很多老羅的臉部照片
拿到很多肌肉男臉部的照片
2、
讓機(jī)器學(xué)習(xí)它們各自的特征
將它們訓(xùn)練成一個(gè)模型
3、
將訓(xùn)練后的模型合成到肌肉男視頻中
完事~
問題來了,怎么拿到他們很多的臉部照片呢?
一種比較好的方式是,通過視頻來提取照片。
可以搜一下老羅的采訪視頻:

找一個(gè)合適的視頻,然后使用 you-get 將視頻下載到本地:

安裝一下 faceswap 庫(kù),用來提取照片,訓(xùn)練,視頻合成。
使用 git 把它 clone 下來:
git clone --depth 1 https://github.com/deepfakes/faceswap.git
接著進(jìn)入 faceswap 中,使用 pip 安裝必要的庫(kù),這里可以使用 CPU 和 GPU 的模式安裝:
有 amd 的 GPU 這樣安裝:
pip install -r requirements_amd.txt
有 N 卡這樣安裝:
pip install -r requirements_nvidia.txt
只有 CPU 這樣安裝:
pip install -r requirements_cpu.txt
完事之后,先來將視頻中的臉部提取成照片:
python faceswap.py extract -i ~/video/lyh/lyh.mp4 -o ~/faces/lyh/
這里將老羅的視頻提取臉部照片到 faces/lyh 目錄下。

提取完成,打開目錄可以看到好多的老羅:

接著使用同樣的方式,把肌肉男的臉部照片也提取出來:

好了,第一步搞定!
臉部照片都有了,接下來訓(xùn)練一波:
python faceswap.py train -A ~/faces/muscle -B ~/faces/lyh -m ~/models/muscle_lyh_model/ -p
-A 指定剛剛提取的肌肉男臉部照片目錄, -B 指定剛剛提取的老羅臉部照片目錄,訓(xùn)練的模型輸出到 models 下。
這樣就讓它一直跑著就行了。
機(jī)器學(xué)習(xí)訓(xùn)練需要一段時(shí)間,根據(jù)你的不同因素訓(xùn)練時(shí)長(zhǎng)不同,比如使用 CPU 的話會(huì)賊慢,GPU 會(huì)快一些,我這里演示使用的是 AMD:

更好的方式是去購(gòu)買云 GPU 服務(wù)器,在上面使用 GPU 搭建訓(xùn)練,比如阿里云就不錯(cuò):
在訓(xùn)練過程中,可以看到預(yù)覽效果:

訓(xùn)練的差不多,得到模型之后,就可以合成視頻了,使用 conver 命令,像這樣:
python faceswap.py convert -i ~/videos/muscle.mp4 -al ~/videos/muscle_alignments.fsa -o ~/Desktop/hahha -m ~/models/muscle_lyh_model -w ffmpeg
這里 -i 指的是我們想要合成的視頻, fsa 文件是在將視頻提取過程獲取的, -o 指的是將換臉后的視頻放到指定的目錄, -m 就是你訓(xùn)練好的模型, -w 使用 ffmpeg。

ok,這樣就可以得到換臉后的視頻了:

流程就是這么個(gè)流程,希望對(duì)你有幫助。
最后,下面這個(gè)是我的小號(hào),進(jìn)來聽我吹牛皮,別忘了關(guān)注一波,以防失聯(lián)。
那么我們下回見,peace!

