前言
本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯系我們以作處理。
PS:如有需要Python學習資料的小伙伴可以點擊下方鏈接自行獲取
最近在抖音上看到很多「螞蟻呀嘿」的魔性視頻,各方大佬齊齊上陣。
剛好看到百度的開源項目,基於PaddleGAN實現表情遷移,於是也來玩一把!
先來看一下成果,各大編程創始人齊唱「螞蟻呀嘿」!

那么需要如何實現呢,下面來手把手教學。
項目地址:
https://aistudio.baidu.com/aistudio/projectdetail/1586056
目前該項目適合在Windows和Linux上操作,Mac在調用ffmpeg這一步會出錯。
不知道是不是和mac不支持gpu安裝paddlepaddle有關系。
首先將PaddleGAN的源碼從gitee上下載下來。
# 從gitee上克隆PaddleGAN代碼 git clone https://gitee.com/paddlepaddle/
沒有安裝git的小伙伴,在文末可以獲取到文件。
下載解壓后,將PaddleGAN文件夾放置在PyCharm的項目中。

如此就能在PyCharm項目的虛擬環境中,進行相關的安裝操作了。
# 終端打開文件夾 cd PaddleGAN # 安裝相關依賴 pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple pip install imageio-ffmpeg -i https://mirror.baidu.com/pypi/simple
終端打開文件夾,安裝所需要的依賴。
畢竟是百度的開源項目,所以使用了百度的pip源,速度真的很快。
下面再創建一個輸出文件夾,生成的視頻會保存在這里。
# 打開文件夾 cd applications/ # 新建文件夾 mkdir output
最后還需要安裝百度的paddlepaddle和paddlehub。
paddlepaddle是基礎,而paddlehub則是用來檢測人臉用的。
將「輸入圖片」中的所有人臉檢測出來,然后使用PaddleGAN對每個人臉進行表情遷移,最后生成視頻。
# 安裝庫 pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple pip install paddlehub -i https://mirror.baidu.com/pypi/simple
下面就可在終端運行如下命令。
export PYTHONPATH=$PYTHONPATH:../PycharmProjects/mayiyahei/PaddleGAN && python -u tools/first-order-demo.py --driving_video ../PycharmProjects/mayiyahei/MaYiYaHei.MP4 --source_image ../PycharmProjects/mayiyahei/input.jpeg --relative --adapt_scale

其中,“../”處應該修改成為你自己的路徑。
命令行參數說明如下。
driving_video: 驅動視頻,視頻中人物的表情動作作為待遷移的對象。
source_image: 原始圖片,視頻中人物的表情動作將遷移到該原始圖片中的人物上 。
relative: 指示程序中使用視頻和圖片中人物關鍵點的相對坐標還是絕對坐標,建議使用相對坐標,若使用絕對坐標,會導致遷移后人物扭曲變形。
adapt_scale: 根據關鍵點凸包自適應運動尺度。
此處,大家可以使用自己設計的圖片,生成你想要的視頻。
比如我的原始圖片input.jpeg,就是編程創始人集合照,如下圖。

對於其他的視頻特效,就需要更改驅動視頻,即修改driving_video。
另外生成的視頻是不帶聲音的,所以需要使用FFmpeg將視頻與音頻進行合並。
# 視頻和音頻合並 ffmpeg -i MaYiYaHei.mp4 -i MYYH.mp3 -vcodec copy -acodec copy result.mp4
如果你想生成GIF,分享給其他人,比如整蠱你的好朋友。
同樣可以使用FFmpeg生成GIF。
# 生成GIF ffmpeg -ss 0 -t 8 -i result.mp4 -s 600*400 -r 15 result.gif
需要設定視頻截取時間及GIF圖像大小。
總結
這里需要注意,在使用PaddleGAN對人臉進行動作表情遷移,這期間耗費的時間比較多,慢慢等就好了。
感興趣的小伙伴也可以動手試一試。
公眾號回復【210306】即可獲取所有相關文件
