首頁  >  文章  >  科技週邊  >  Python+AI讓靜態圖片動起來

Python+AI讓靜態圖片動起來

王林
王林轉載
2023-04-08 23:41:061950瀏覽

哈嘍,大家好。

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

類似於下面這種效果

Python+AI讓靜態圖片動起來

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

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

1. 運行專案

專案網址:https://github.com/AliaksandrSiarohin/first-order-model

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

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

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

準備好模型檔案後,在專案根目錄下執行下方指令即可。

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

解釋下參數:

    ##--config:模型設定文件,在來源檔案中有
  • --driving_video:提供動作的影片
  • --source_image:需要加動效的靜態圖片
  • --checkpoint:剛剛下載的模型檔案
運行完成後,會看到如下輸入。

Python+AI讓靜態圖片動起來

該專案使用PyTorch建立神經網絡,支援GPU和CPU運行,所以如果你的電腦只有CPU,運行會比較慢。

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

有了這個項目,可以自己做些比較有趣的嘗試。

Python+AI讓靜態圖片動起來

2. Python API

上面教大家依照官網在命令列運行專案。

有些朋友可能想在Python專案中調用,所以我在demo.py中抽取了核心程式碼,封裝了一個Pyhton API。

Python+AI讓靜態圖片動起來

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

fom = FOM()<br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 查看驱动视频,驱动视频最好裁剪为480 x 640 大小的视频</span><br>driving_video = <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 被驱动的画面</span><br>source_image = <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 输出视频</span><br>result_video = <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">''</span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 驱动画面</span><br>fom.img_to_video(driving_video, source_image, result_video)

以上是Python+AI讓靜態圖片動起來的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除