首页 >图片操作 > 内容

手把手实现火爆全网的视频特效 “蚂蚁呀嘿”,太魔性了

2023年9月18日 22:49

点击上方“AI算法与图像处理”,选择加"星标"或“置顶”

重磅干货,第一时间送达

导读

Hi,大家好,今天是周末,今天给各位读者分享最近很火的视频特效。

将会依据现有的demo,一步步去分析原理,并最终实现。

思路简介

首先看一下目标效果(下面放的是 gif,我们需要的是视频,需要添加背景音乐)

明确目标之后,接下来就是进一步去分解具体的技术实现。

参考网上的实现方法:

采用APP

Avatarify
Avatarify

操作步骤:

打开这款软件Avatarify,选择一张照片即可进入选择特效页面

即:需要一张图片 +一个想要的特效视频

具体的原理:

让一张照片动起来,人脸跟着音乐一起挤眉弄眼,需要一个叫做一阶运动模型(First Order Motion Model)来搞定。

技术原理借鉴了去年意大利特伦托大学的一项研究,入选了NIPS 2019。

当时的例子是这样的。

当然上面的操作仅仅只能用于画面的特效,没有声音,因此,我们需要添加声音,同时如果想要分享到朋友圈的话,还需要一定的处理将视频的编码格式变成H264。

下面我将一步步操作

详细教程


1、克隆项目并配置环境 项目连接:

https://github.com/anandpawara/Real_Time_Image_Animation

本文所有操作均在ubuntu 20.04 下操作,如需windows或mac下操作,请自行搜索相应的解决方案

1)从 github 克隆项目

git clone git@github.com:anandpawara/Real_Time_Image_Animation.git
2)配置环境
pip install -r requirements.txt
报错:

ERROR:Couldnotfindaversionthatsatisfiestherequirementpywin32==227 ERROR:Nomatchingdistributionfoundforpywin32==227

暂时不处理 !!!

从requirements.txt中删除掉之后,再次运行上面的语句
或者运行代码尝试缺少哪些包
运行代码
python image_animation.py -i path_to_input_file -c path_to_checkpoint -v path_to_video_file
各个参数的含义:

path_to_input_file 是输入的图片(例如你相对蒙娜丽莎进行变换,这里输入即她的照片)

path_to_checkpoint 是权重文件路径(需要从项目中的下载)

path_to_video_file 是输入的视频文件(含动作的视频文件)

pythonimage_animation.py-iInputs/Monalisa.png-ccheckpoints/vox-cpk.pth.tar-v1.mp4

如果运行成功,最后生成的视频存放在 output 文件夹下。

当然由于上述环境安装问题,导致会报错 :

Nomodulenamed'tqdm'

Nomodulenamed'imageio'

Nomodulenamed'skimage'

Nomodulenamed'sklearn'

Nomodulenamed'pandas'

Nomodulenamed'yaml'

Nomodulenamed'cv2'

这是常见问题,缺失必要的包,但在国内安装的时候,如果直接 pipinstall 进行安装可能会存在网速太慢的问题,导致失败或者浪费了大量的时间,可以考虑换源或指定源的方式来快速下载

这里给出指定源的方法

参考:https://www.cnblogs.com/flintlovesam/p/12833652.html

例如想要安装imageio,在后面添加 -i +源 即可

pip install imageio -i https://mirrors.aliyun.com/pypi/simple/

同样的问题,这里用到了 pytorch,国内安装也会遇到上述的问题,这里也采用指定源的方式解决 (安装 GPU 版本 pytorch, 版本 1.5.0)

pipinstalltorch===1.5.0+cu101torchvision===0.6.0+cu101-fhttps://download.pytorch.org/whl/torch_stable.html-ihttps://pypi.douban.com/simple/some-package

注意:这里我的是cuda版本是10.1,大家根据自己的情况进行调整 如果安装速度慢,可以考虑换源或以制定源的方法安装

参考:https://blog.csdn.net/qq_36414085/article/details/106369314

上诉操作成功后,再次运行,此时 output文件夹下即有结果出来

python image_animation.py -i Inputs/Monalisa.png -c checkpoints/vox-cpk.pth.tar -v 1.mp4

上述的操作,就这个项目能实现的基本功能,实现动作迁移,下面我们将对进行一些修改来达到我们的最终目标!

大致内容:

1)画面修改

2)添加背景音乐

3)视频格式转换

优化

1)画面修改

存在的问题:

1、帧数问题:

素材帧数-15 FPS

生成的视频结果的设置帧数 为 12 FPS 会导致音画不同步

2、画面尺寸问题:

由于这个项目的作者将最终的显示结果设置为

原图--生成视频--原始视频 的结果形式,

而我们最终只想要 生成的视频,所以还需要进行一定的修改(从256*3,256)变成(256,256)

具体修改

# 文件 image_animation.py#第50行# out1 = cv2.VideoWriter('output/test.avi', fourcc, 12, (256*3 , 256), True)#修改输出视频格式帧数和视频输出的尺寸out1=cv2.VideoWriter('output/test.avi',fourcc,15,(256,256),True)

同时修改保存的结果:

#  文件 image_animation.py# 重点关注joinedFrame = np.concatenate((cv2_source,im,frame1),axis=1)            cv2.imshow('Test',joinedFrame)out1.write(img_as_ubyte(joinedFrame))# 修改成out1.write(img_as_ubyte(im))

备注:

获取视频帧数的方法

import cv2cap = cv2.VideoCapture("test.avi")print(cap.get(cv2.CV_CAP_PROP_FPS )

参考https://zhuanlan.zhihu.com/p/56571623

2)添加背景音乐

这里需要安装moviepy 包

pip install moviepy

如果遇到问题可以考虑下面的处理方法

sudopipinstallez_setuppip install --user moviepy -ignore-installed -i https://mirrors.aliyun.com/pypi/simple/

参考:https://blog.csdn.net/weixin_38636815/article/details/106539049

https://blog.csdn.net/qq_43058685/article/details/104221009

添加背景音乐

from moviepy.editor import *video_path='test.avi'audio_path = 'test.wav'video = VideoFileClip(video_path)audio_clip = AudioFileClip(audio_path)video = video.set_audio(audio_clip)video.write_videofile('result-myyh.mp4')

3)视频格式转换

安装ffmpeg

微信:不能分享这种格式(MP4)的视频的问题原因以及解决方案 上传H.264编码格式的MP4视频,否则借助第三方转换软件转换成H.264编码格式的MP4视频即可。ffmpeg

https://jingyan.baidu.com/article/27fa732646092846f9271f71.html (安装教程)https://zhuanlan.zhihu.com/p/200783234

ffmpeg-iresult-myyh.mp4-vcodeclibx264-fmp4result.mp4

上述代码在终端中运行,将result-myyh.mp4 生成我们需要的编码格式视频文件result.mp4 (外放的话注意音量哦)

总结

本文详细分析,并一步步拆解现有的方案,最终实现的效果如上所示,所有相关的代码已放在公众号后台,回复“视频特效”即可获取

感谢看到这里的小伙伴,希望能给个三连支持一下,周末还在加班的打工人!下期见

参考文献:

  • https://github.com/anandpawara/Real_Time_Image_Animation

  • https://www.cnblogs.com/flintlovesam/p/12833652.html

  • https://blog.csdn.net/qq_36414085/article/details/10636931

  • https://blog.csdn.net/weixin_38636815/article/details/106539049

  • https://blog.csdn.net/qq_43058685/article/details/104221009

  • https://jingyan.baidu.com/article/27fa732646092846f9271f71.html

  • https://github.com/opencv/opencv-python/issues/100

  • http://www.blogdaren.com/post-2592.html

  • https://zhuanlan.zhihu.com/p/200783234

个人微信(如果没有备注不拉群!)请注明:地区+学校/企业+研究方向+昵称下载1:何恺明顶会分享在「AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析下载2:终身受益的编程指南:Google编程风格指南在「AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!下载3 CVPR2020在「AI算法与图像处理」公众号后台回复:CVPR2020,即可下载1467篇CVPR2020论文觉得不错就点亮在看吧


参考文章:https://blog.csdn.net/flyfor2013/article/details/114297920

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,在此表示感谢。

特别提醒:

1、请用户自行保存原始数据,为确保安全网站使用完即被永久销毁,如何人将无法再次获取。

2、如果上次文件较大或者涉及到复杂运算的数据,可能需要一定的时间,请耐心等待一会。

3、请按照用户协议文明上网,如果发现用户存在恶意行为,包括但不限于发布不合适言论妄图

     获取用户隐私信息等行为,网站将根据掌握的情况对用户进行限制部分行为、永久封号等处罚。

4、如果文件下载失败可能是弹出窗口被浏览器拦截,点击允许弹出即可,一般在网址栏位置设置

5、欢迎将网站推荐给其他人,网站持续更新更多功能敬请期待,收藏网站高效办公不迷路。

      



登录后回复

共有0条评论