Python一步实现静态图片动态化
前言
哈嘍,大家好。
大家在刷短視頻的時候有沒有刷到這樣的視頻,視頻里一張靜態的人物圖片能動起來,如:歪歪頭、眨眨眼、笑一笑。
類似于下面這種效果
最左側的人物是原始的動作,上面是靜態圖片。通過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學習交流Q群:906715085#### 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一步实现静态图片动态化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css box-sizing
- 下一篇: (Linux)mongodb启用安全认证