国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

都是第一次玩DeepFakes

極客小將2020-12-30-
簡介python視頻教程欄目介紹DeepFakes。目標之前沒碰過DeepFakes,突然想發B站視頻玩兒一下。試了試還挺麻煩的,這里記錄一下自己踩的坑。本文的目標就是將TheSingingTrump的視頻換成我們的川建國同志。最后效果:視頻鏈接:https://www.bilibili.com/vid
python視頻教程欄目介紹DeepFakes。目標

之前沒碰過DeepFakes,突然想發B站視頻玩兒一下。試了試還挺麻煩的,這里記錄一下自己踩的坑。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

本文的目標就是將The Singing Trump的視頻換成我們的川建國同志。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

**后效果:Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

視頻鏈接:https://www.bilibili.com/video/BV12p4y1k7E8/Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

環境說明

本文嘗試的環境為linux服務器的環境,因為跑得比較快吧。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

Python環境:Anoconda python3.7版本Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

GPU:K80, 12G顯存Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

DeepFake版本:2.0Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

其他工具:ffmpegJbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

素材準備

首先需要準備一個或者多個The Singing Trump的視頻,以及川建國同志的視頻。用作換臉素材。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

視頻切分

首先通過ffmpeg將視頻素材切分成多個圖片。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

mkdir output ffmpeg -i 你的視頻.mp4 -r 2 output/video-frame-t-%d.png復制代碼

這里視頻不一定要mp4,其他格式也行,然后 -r 2表示是2幀,也就是每秒鐘采集兩張圖片,各位可以按照自己的視頻嘗試。 **后是輸出到output文件夾里面,前綴隨便定義就好了,名字也不是關鍵。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

這里**好多找幾個視頻,因為deepfake會提示要保證人臉個數大于200張才會比較好,我這里分別準備了3個視頻,一共6個視頻。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

ffmpeg -i sing_trump1.mp4 -r 2 sing_trump_output/st1-%d.png ffmpeg -i sing_trump2.flv -r 2 sing_trump_output/st2-%d.png ffmpeg -i sing_trump3.mp4 -r 2 sing_trump_output/st3-%d.png復制代碼ffmpeg -i trump1.webm -r 2 trump_output/t1-%d.png ffmpeg -i trump2.mp4 -r 2 trump_output/t2-%d.png ffmpeg -i trump3.mp4 -r 2 trump_output/t3-%d.png復制代碼

弄完了還挺大,亂七八糟加起來3.7個G。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

clone代碼+裝依賴

這里沒啥可說的,從github上下代碼。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

git clone https://github.com/deepfakes/faceswap.git復制代碼

然后根據自己的實際情況裝環境,我這里是現在PC上裝cpu這個,然后在服務器上裝nvidia。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

抽取臉部

接下來將所有的臉部抽出來。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python3 faceswap.py extract -i trump_output -o trump_output_face python3 faceswap.py extract -i sing_trump_output -o sing_trump_output_face復制代碼

這里抽完了臉就是這樣了。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

篩選臉部

接下來需要手工把我們不需要的臉都刪掉。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

修改alignment

在我們調用extract生成臉部時,會自動生成一個校對文件,用于在原圖上保存臉部的信息。刪除臉部之后,需要將臉部和原圖片進行對齊。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

這里可以打開gui工具Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python3 faceswap.py gui復制代碼

然后選擇Tools下的Alignments。 Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

接下來選擇Remove-Faces,然后輸入對齊文件路徑,臉的路徑,以及原圖的路徑。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

然后點擊綠色按鈕開始,運行即可。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

然后將sing_trump_out也執行同樣的操作。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

開始訓練

接下來就可以開始訓練了,-m參數為保存模型的位置。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python3 ./faceswap.py train -A sing_trump_output_face -ala sing_trump_output/alignments.fsa -B trump_output_face -alb trump_output/alignments.fsa -m model復制代碼小問題

這里如果用gpu的話,我發現tensorflow2.2開始要用cuda10.1以上,但我這邊兒沒法裝,所以需要用tensorflow1.14或者tensorflow1.15,這就需要deepfake的1.0版本才能用。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

github.com/deepfakes/f…Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

訓練截圖

我發現faceswap1.0和master分支的操作是一樣的,沒太大變化。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

我這里的速度大概是2分鐘100個step。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

轉換視頻準備視頻幀

首先要準備我們要轉換的視頻,然后把視頻切分,這里就不是按照之前的幀數了。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

ffmpeg –i sing_trump2.flv input_frames/video-frame-%d.png 復制代碼

這里我的視頻是1分41秒。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

轉換完了大概有3050張圖片,也就是差不多30幀的,然后一共7.1G(mac就256G真的有點兒遭不?。?img 都是第一次玩DeepFakes class="lazyload" src="upload/article/images/2020-12-30/c3938a5f1eea43a7c3f719b149b04fec.png" data-width="800" data-height="600"/>Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

再次對齊一遍

接下來,需要對我們要轉換的視頻圖片再來一遍人臉對齊,首先抽臉。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python3 faceswap.py extract -i input_frames -o input_frames_face復制代碼

然后再把多余的臉刪掉,像前面的步驟一樣的操作用gui工具選擇Remove-Faces,然后進行對齊。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

對每一幀進行AI換臉

通過convert命令進行轉換Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python3 faceswap.py convert -i input_frames/ -o output_frames -m model/復制代碼

我這里的速度大概是每秒1張圖片,不過真正的臉只有600多張,如果臉比較密集的話我估計可能沒有那么快,所有的圖片轉換完大概是5分多鐘(這個gpu當時有別的程序在跑真實可能會更快一點兒)。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

效果訓練20分鐘后

在訓練了1200step之后,大概是這個樣子,效果看著還不是很好哈,不過已經有點兒意思了。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

訓練一個小時后

Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

訓練一天以后

Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

把圖片合成視頻

**后通過ffmpeg把圖片合成一個視頻。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

ffmpeg -i output_frames/video-frame-%d.png -vcodec libx264 -r 30 out.mp4復制代碼

這里合并完了我發現是2分鐘,不過影響也不大,畢竟后面還要進行剪輯,用PR等軟件再編輯一下就好了。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

總結

看視頻可以發現當臉比較小的時候,faceswap并沒有識別出來臉,所以也就沒有做替換,還是有點兒遺憾。 Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

個人感覺整個deepfake的**費時間的流程其實就是在刪掉多余的臉上面。Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

相關免費學習推薦:python視頻教程Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

以上就是都是第一次玩DeepFakes的詳細內容,更多請關注少兒編程網其它相關文章!Jbm少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 安西县| 利津县| 商丘市| 筠连县| 广元市| 天气| 长治市| 玛多县| 黄陵县| 苏尼特右旗| 梅州市| 汨罗市| 玉田县| 汉沽区| 南阳市| 筠连县| 梨树县| 云浮市| 达孜县| 深泽县| 安丘市| 铅山县| 平江县| 乐业县| 罗山县| 哈尔滨市| 长垣县| 星子县| 长泰县| 临洮县| 桂阳县| 扬中市| 临高县| 根河市| 泸定县| 山阳县| 无为县| 曲阜市| 留坝县| 罗甸县| 南投县|