当前位置: 首页 > 科技观察

Python+AI让静态图片动起来

时间:2023-03-14 20:13:50 科技观察

大家好。刷完短视频,你见过这样的视频吗?视频中,一个人的静态画面是可以运动的,比如歪头、眨眼等。类似下面这个效果,最左边的人物是原动作,上面是静止画面。通过AI技术,可以将最左边角色的动作套用到上面的静态图片上,让所有图片都做出相同的动作。该技术一般基于GAN(生成对抗网络)实现。今天给大家分享一个可以复现上述效果的开源项目。你可以做一些有趣的项目,想念你的老朋友。1.运行项目项目地址:https://github.com/AliaksandrSiarohin/first-order-model首先gitclone将项目下载到本地,进入项目安装依赖。gitclonehttps://github.com/AliaksandrSiarohin/first-order-model.gitcdfirst-order-modelpipinstall-rrequirements.txt然后在项目主页Pre-trainedcheckpoint标题下找到模型下载链接,并下载模型文件和模型很多,我用的是vox-adv-cpk.pth.tar。准备好模型文件后,在项目根目录下执行以下命令。pythondemo.py\--configconfig/vox-adv-256.yaml\--driving_videosrc_video.mp4\--source_imagesrc_img.jpg\--checkpointweights/vox-adv-cpk.pth.tar解释以下参数:--config:模型配置文件,在源文件中--driving_video:提供动作的视频--source_image:需要动画的静态图片--checkpoint:刚刚下载的模型文件运行完成后,会看到以下输入。本项目使用PyTorch构建神经网络,支持GPU和CPU运行,所以如果你的电脑只有CPU,运行速度会比较慢。我在CPU下运行它。从上图可以看出,driving_video只有31帧。如果你也是在CPU上运行,最好控制driving_video视频的时长,否则运行时间会比较长。通过这个项目,你可以自己做一些更有趣的尝试。2.上面的PythonAPI教你按照官网在命令行运行项目。可能有朋友想在Python项目中调用,所以我把核心代码提取到demo.py中,封装了一个PyhtonAPI。有需要的朋友可以下载这个文件,放在和first-order-model同级的目录下,按照下面的代码调用。fom=FOM()#查看行车视频,最好将行车视频剪切成480x640的视频driving_video=''#驱动图片source_image=''#输出视频result_video=''#行车图片fom.img_to_video(driving_video,source_image,result_video)