点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

导读

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: Could not find a version that satisfies the requirement pywin32==227 ERROR: No matching distribution found for pywin32==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 是输入的视频文件(含动作的视频文件)

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

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

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

No module named 'tqdm'

No module named 'imageio'

No module named 'skimage'

No module named 'sklearn'

No module named 'pandas'

No module named 'yaml'

No module named 'cv2'

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

这里给出指定源的方法

参考: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)

pip install torch===1.5.0+cu101 torchvision===0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html -i https://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 cv2
cap = cv2.VideoCapture("test.avi")
print(cap.get(cv2.CV_CAP_PROP_FPS )

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

2)添加背景音乐

这里需要安装moviepy 包

pip install moviepy

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

sudo pip install ez_setup
pip 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 -i result-myyh.mp4 -vcodec libx264 -f mp4 result.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在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。
下载2在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。
下载3在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~

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

  1. 2021年更新:火爆全网的抖音“蚂蚁牙黑”视频制作实战,附软件

    近日,在抖音关于"蚂蚁牙黑"的魔性音乐超过了10亿次播放,相信大家都有被这首神曲洗过脑吧,说实话,还真是挺上头的,本来之前就想给大家出一期教程,不过当时使用的工具以及过程太过繁琐, ...

  2. 火爆全网的Python数据科学手册,太有用了

    大家好,感谢大家一路以来的关注和支持,今天为大家整理和筛选了大量火爆全网的Python数据科学学习资料,全部资料按需自助免费获取! 火爆全网的Python进阶中文版 推荐一本对Python感兴趣的书籍 ...

  3. 魔性,用 Python 实现火爆全网的「蚂蚁呀嘿」视频特效!

    完整文章.资料阅读公众号文章还有视频:https://mp.weixin.qq.com/s/RsJWPWKE0YCebelxHr-KaA 你好,我是悦创.这篇文章搞了前后两天,至于为什么搞,后面会说. ...

  4. 魔性,用Python实现火爆全网的「蚂蚁呀嘿」视频特效!

    公众号后台回复"图书",了解更多号主新书内容 作者:小F 来源:法纳斯特 最近小F在抖音上看到很多「蚂蚁呀嘿」的魔性视频,各方大佬齐齐上阵. 刚好看到百度的开源项目,基于Paddl ...

  5. python动态粒子素材,太魔性了,用 Python 实现火爆全网的「蚂蚁呀嘿」视频特效!...

    大家好,我是安果! 最近在抖音上看到很多「蚂蚁呀嘿」的魔性视频,各方大佬齐齐上阵 刚好看到百度的开源项目,基于 PaddleGAN 实现表情迁移,于是也来玩一把! 先来看一下生成的效果图,各大编程创始 ...

  6. 短视频火爆全网也难逃一死

    短视频火爆全网之时,头部IP的大爆发相比于投资者的饥不择食,正在以比图文自媒体运营时代更快的速度吹起一个风口.然而,平台的分成大部分流向了金字塔顶端的头部内容,即便如此也难覆盖其高昂的生产成本.而对于 ...

  7. 短视频APP开发:短视频特效SDK功能火爆来袭!

    为什么短视频这么火呢?因为它符合了用户碎片化时间的需求,既娱乐了大众,又不会浪费用户太多时间. 短视频APP开发以互联网技术为核心,在原有的基础上不断进行创新,进而拥有多种强大的拍摄功能,让用户可以快 ...

  8. 【火爆全网,好评如潮】DS100手持示波器现货发售拉,附原子哥发布会详细讲解视频以及宣传视频...

    关注.星标公众号,直达精彩内容 原子哥发布会讲解DS100视频 DS简要介绍视频 正点原子DS100手持示波器,预售一个月火爆全网,咨询者无数.第一批1000套已经售完.现在是第二批现货发售. 我们截 ...

  9. 用Python实现火爆全网的「蚂蚁呀嘿」!这也太恶搞了吧!

    最近在抖音上看到很多「蚂蚁呀嘿」的魔性视频,各方大佬齐齐上阵. 刚好看到百度的开源项目,基于PaddleGAN实现表情迁移,于是也来玩一把! 先来看一下小F的成果,各大编程创始人齐唱「蚂蚁呀嘿」! 没 ...

最新文章

  1. mssql mysql 语法区别_mssql与mysql区别之——变量区别
  2. 微软CEO纳德拉对话沈向洋:那些未来可期的计算机视觉研究与应用
  3. Puppet之简单安装Nginx
  4. Linux常用系统管理命令(top、free、kill、df)
  5. 详解Python第三方库(三)----- Pillow库
  6. if else 简写_15+ JS简写骚操作,让你的代码“秀”起来??
  7. OpenCASCADE:读STEP
  8. MySQL 左右两表比较问题
  9. 解决qt工程文件.pro配置、LIBS添加、ld.so.conf文件添加、库文件权限设置等一系列问题
  10. 【一天一个C++小知识】004.C++中内部链接和外部链接
  11. 视频不显示的分析方法
  12. 数据库左连接和右连接有什么区别!
  13. QQIP纯真数据库调用全国省市地址
  14. 超声波测距模块工作原理
  15. 【数据结构】树与二叉树的基本概念及性质
  16. 如何写出好的SEO标题,网页标题SEO优化的方法
  17. 基于蜜蜂算法的函数寻优及TSP搜索算法
  18. 连接mysql报错Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zon
  19. 坚持一年背英语单词的总结
  20. 网站安全公司 该如何浅入浅出发展分析

热门文章

  1. 《CCNP TSHOOT 300-135认证考试指南》——5.1节“我已经知道了吗?”测试题
  2. Xcode中快速定位、快速查找、快速查看文档、快速解决不再打印等技巧
  3. jQuery 操作 DOM
  4. 用ldap方式访问AD域的的错误解释
  5. c#小软件(SaveClassic)开发手记--(1)前言
  6. xp里删除不想要的删不掉的帐户
  7. 一起学DNS系列(十)图、例详解DNS递归和迭代查询原理及过程 (1)
  8. 员工提出离职,称害怕猝死,HR却说:先猝死了再说!
  9. 某阿里8年资深程序员求助:连续两次绩效挂掉,被hr辞退不给n+1,怎么办?
  10. 100% 展示 MySQL 语句执行的神器-Optimizer Trace