天天看點

魔性,用Python實作火爆全網的「螞蟻呀嘿」視訊特效!

最近小F在抖音上看到很多「螞蟻呀嘿」的魔性視訊,各方大佬齊齊上陣。

剛好看到百度的開源項目,基于PaddleGAN實作表情遷移,于是也來玩一把!

先來看一下小F的成果,各大程式設計創始人齊唱「螞蟻呀嘿」!

魔性,用Python實作火爆全網的「螞蟻呀嘿」視訊特效!

沒配音,感覺不是很精彩,後面上視訊。

那麼需要如何實作呢,下面小F來手把手教學。

項目位址:

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的小夥伴,在公衆号回複「螞蟻呀嘿」就可以擷取到檔案。

下載下傳解壓後,小F是将PaddleGAN檔案夾放置在PyCharm的項目中。

魔性,用Python實作火爆全網的「螞蟻呀嘿」視訊特效!

如此就能在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           

複制

魔性,用Python實作火爆全網的「螞蟻呀嘿」視訊特效!

其中,“../”處應該修改成為你自己的路徑。

指令行參數說明如下。

driving_video: 驅動視訊,視訊中人物的表情動作作為待遷移的對象。

source_image: 原始圖檔,視訊中人物的表情動作将遷移到該原始圖檔中的人物上 。

relative: 訓示程式中使用視訊和圖檔中人物關鍵點的相對坐标還是絕對坐标,建議使用相對坐标,若使用絕對坐标,會導緻遷移後人物扭曲變形。

adapt_scale: 根據關鍵點凸包自适應運動尺度。           

複制

此處,大家可以使用自己設計的圖檔,生成你想要的視訊。

比如我的原始圖檔input.jpeg,就是程式設計創始人集合照,如下圖。

魔性,用Python實作火爆全網的「螞蟻呀嘿」視訊特效!

對于其他的視訊特效,就需要更改驅動視訊,即修改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圖像大小。

上一篇: imsi+mcc+mnc
下一篇: 營運商MCC+MNC