原文:MugLife静态照片变3D动画算法研究

MugLife app是一款可以将静态照片变成3D动画的手机应用,如下效果图所示:

大家可以看到,这个静态图具有了类3D的动画特效,是不是很好玩?

这种算法是如何实现的呢?

这里给出一篇论文“Bringing Portraits to Life”Siggraph Asia 2017

这篇论文就是通过二维图像算法来实现静态图的3D动画效果的。

下面我们来讲解一下具体的算法实现过程:

首先根据一段视频,将目标静态图动画处理

整体流程:

将视频帧定义为S(i),目标静态图为T;

根据S(i)生成T(i);

1,单张图处理:

①人脸识别+点位对齐

红色点为人脸特征点68个;

黄色点为估算点位;

②构建三角网格变形

③根据S(i)的点位变化,预测T(i)点位变化,对T(i)进行三角变形

效果图:

2,细节修复

①嘴巴填充

泊松融合

②脸部皱纹阴影迁移

上述流程串起来,就是整个算法过程,用户输入一张照片,导入动画模版即可实现照片动画效果了,Muglife因该就是根据这篇论文来做的,不过可能在此基础上添加了其他的算法优化等等。

本人的效果如下:

原图:

效果图GIF(来自视频截图,质量受到的影响可以忽略):

上述效果仅仅是一个人脸左右旋转,其他效果可以替换不同的视频帧序列模型即可。算法原理就讲解到这里了,代码就不贴了。

本人QQ1358009172

MugLife静态照片变3D动画算法研究的更多相关文章

  1. MugLife app是一款可以将静态照片变成3D动画的手机应用

    MugLife app是一款可以将静态照片变成3D动画的手机应用,如下效果图所示: 大家可以看到,这个静态图具有了类3D的动画特效,是不是很好玩? 这种算法是如何实现的呢? 这里给出一篇论文“Brin ...

  2. 静态频繁子图挖掘算法用于动态网络——gSpan算法研究

    摘要 随着信息技术的不断发展,人类可以很容易地收集和储存大量的数据,然而,如何在海量的数据中提取对用户有用的信息逐渐地成为巨大挑战.为了应对这种挑战,数据挖掘技术应运而生,成为了最近一段时期数据科学的 ...

  3. 硕毕论文_基于 3D 卷积神经网络的行为识别算法研究

    论文标题:基于 3D 卷积神经网络的行为识别算法研究 来源/作者机构情况: 中  国  地  质  大  学(北京),计算机学院,图像处理方向 解决问题/主要思想贡献: 1. 使用张量CP分解的原理, ...

  4. 神奇的AI:将静态图片转为3D动图

    近日我们从外媒获得消息,位于莫斯科的三星AI中心和Skolkovo科学技术研究所的研究人员发表了一篇新论文,详细介绍了从单个静止人像照片生成3D动画人像的创建.与此前能够生成照片般逼真肖像的人工智能A ...

  5. 如何制作css3的3d动画——以骰子旋转为例,详解css3动画属性

    首先先来看两个用css3实现的炫酷的3d动画效果 1 2 3 4 5   6 你没看错,这个炫酷的效果都是用css3实现的. 下面是动画实现所需要用到的几个css3属性. 1.perspective: ...

  6. 用队列模拟jquery的动画算法

    Aaron最近疯狂的爱上了算法研究,估计又要死伤不少脑细胞了,我喜欢捡现成的,可以省些力气.发现他写的一段源码,运行一下,还蛮好玩的,于是拿来分析一下,一来吸收下里边的营养,二来加深一下源码学习的功力 ...

  7. HTML5 3D动画效果

    对以前来讲,3D动画拿到网页上展示是一件非常奢侈的事情,第一是浏览器不够先进,第二是大部分只能用flash实现伪3D.HTML5的出现,让实现网页3D动画变得非常简单,当然前提是你不要再使用像IE67 ...

  8. 7款超酷HTML5 3D动画精选应用及源码

    对以前来讲,3D动画拿到网页上展示是一件非常奢侈的事情,第一是浏览器不够先进,第二是大部分只能用flash实现伪3D.HTML5的出现,让实现网页3D动画变得非常简单,当然前提是你不要再使用像IE67 ...

  9. CSS3中的3D动画实现(钟摆、魔方)--实现代码

    CSS3中的3D动画实现(钟摆.魔方) transition-property 过渡动画属性  all|[attr] transition-duration 过渡时间 transition-delay ...

随机推荐

  1. erlang一些参考资源

    1. erlang非业余研究 http://blog.yufeng.info/ 2.code.wang http://www.cnblogs.com/codew/ 3.码农生涯 http://www. ...

  2. JS null问题

    在学习getElementById()方法的过程中出现了这样一个问题,便想记录下来. 分析问题之前,我们最好还是先来认识一下getElementById()方法.getElementById()方法, ...

  3. 【codeforces 546B】Soldier and Badges

    time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  4. 7个在线学习C++编程的最佳途径

    7个在线学习C++编程的最佳途径 jopen 2012-09-27 15:51:13 • 发布 摘要:C++是一种静态数据类型检查的.支持多重编程范式的通用程序设计语言.它支持过程化程序设计.数据抽象 ...

  5. AndroidMainifest标签使用说明3——<activity-alias>

    格式: <activity-alias android:enabled=["true" | "false"] android:exported=[&quo ...

  6. cordova 生成发行版apk,并添加证书 – 畅玩Coding

    原文:cordova 生成发行版apk,并添加证书 – 畅玩Coding 首先jdk生成证书. 1.进入jdk安装目录 D:\Java\jdk1.7.0\bin 2.执行命令 keytool -gen ...

  7. SpringBoot 打包成war包,部署到tomcat

    使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat.现在需要将项目打包,并部署到服务器tomcat下面. 1.修改pom.xml文件.将jar修 ...

  8. android仿新浪引导界面

    最近在研究如何做出仿微信,仿新浪等应用,第一次安装使用的使用展示应用程序的新特性和用法. 实现功能:左右手势滑屏 底部小圆点随当前显示页跳动 浮动按钮显示.当触屏事件发生显示,否则就渐渐消失 先转个文 ...

  9. How to provide highlighting with Spring data elasticsearch

    How to provide highlighting with Spring data elasticsearch @Test public void shouldReturnHighlighted ...

  10. IP packet transmission using vehicular transport

    In one embodiment, a first stationary router may detect a disconnected backhaul link to a destinatio ...