如何讓利用Python+AI使靜態圖片動起來

前言:

這種技術一般是基於的GAN(生成對抗網絡)來實現,今天我給大傢分享一個開源項目,能夠復現靜態圖片動起來效果,可以做些有趣的項目,也可以懷念故人。

大傢在刷短視頻的時候有沒有刷到這樣的視頻,視頻裡一張靜態的人物圖片能動起來,如:歪歪頭、眨眨眼。

類似於下面這種效果:

最左側的人物是原始的動作,上面是靜態圖片。通過AI技術便可以讓最左側人物的動作運用到上面的靜態圖片上,從而讓張圖都可以做出相同的動作。

這種技術一般是基於的GAN(生成對抗網絡)來實現,今天我給大傢分享一個開源項目,能夠復現上面的效果,可以做些有趣的項目,也可以懷念故人。

1. 運行項目

項目地址:https://github.com/AliaksandrSiarohin/first-order-model

首先,git clone將項目下載到本地,進入項目安裝依賴。

git clone https://github.com/AliaksandrSiarohin/first-order-model.git
cd first-order-model
pip install -r requirements.txt

然後,在項目首頁Pre-trained checkpoint​標題下,找到模型下載鏈接,下載模型文件,模型有很多,我用的是vox-adv-cpk.pth.tar。

準備好模型文件後,在項目根目錄下執行下面命令即可。

python demo.py  \
  --config config/vox-adv-256.yaml \
  --driving_video src_video.mp4 \
  --source_image src_img.jpg \
  --checkpoint weights/vox-adv-cpk.pth.tar

解釋下參數:

  • –config:模型配置文件,在源文件中有
  • –driving_video:提供動作的視頻
  • –source_image:需要加動效的靜態圖片
  • –checkpoint:剛剛下載的模型文件

運行完成後,會看到如下輸入。

該項目使用PyTorch​搭建神經網絡,支持GPU和CPU運行,所以如果你的電腦隻有CPU,運行會比較慢。

我是在CPU​下運行的,從上圖可以看到,driving_video隻有 31 幀。如果你也是CPU​運行,最好控制driving_video視頻的時長,不然運行時長會比較長。

有瞭該項目,可以自己做些比較有意思的嘗試。

2. Python API

上面教大傢按照官網在命令行運行該項目。

有些朋友可能想在Python項目中調用,所以我在demo.py中抽取瞭核心代碼,封裝瞭一個Pyhton API。

有需要的朋友可以下載這個文件,放到與first-order-model同一級的目錄下,按照下面代碼調用即可。

fom = FOM()
# 查看驅動視頻,驅動視頻最好裁剪為480 x 640 大小的視頻
driving_video = ''
# 被驅動的畫面
source_image = ''
# 輸出視頻
result_video = ''
# 驅動畫面
fom.img_to_video(driving_video, source_image, result_video)

到此這篇關於如何讓利用Python+AI使靜態圖片動起來的文章就介紹到這瞭,更多相關 Python+AI讓圖片動起來內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: