太魔性了,用Python實現火爆全網的「螞蟻呀嘿」視頻特效!


前言

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯系我們以作處理。

PS:如有需要Python學習資料的小伙伴可以點擊下方鏈接自行獲取

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】即可獲取所有相關文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM