Moving Portraits
2014-09-12 15:32
204 查看
Moving Portraits
By Ira Kemelmacher-Shlizerman, Eli Shechtman, Rahul Garg, and Steven M. Seitz
《Moving Portraits》论文是利用同一个人的大量的照片来生成脸部动画。将人的照片集看成一个图,每幅照片看作一个节点,两幅照片的相似度看作边权重。构造动画序列的过程就是运用dijkstra算法在图中找出最短路径,得到最优化的图片序列之后,运用交叉溶解的方法来渲染照片序列以得到连续的动画。
1、构造图
每幅照片看作一个结点,边权重来刻画照片的相似度。照片相似度用面部外貌(表情、发型等等)、姿势、时间等等来刻画。
为了计算两幅图片的头部姿态距离,每幅图片要先用脸部检测器进行人脸检测,然后用基准点检测器找出一些基准点。下一步检测姿态,将检测到的人脸区域对齐到一个3D人脸模板模型。从旋转矩阵中估计出头部姿态的几个分量,计算出头部姿态距离。
为了计算面部表情的相似度,通过使用不同的描述子可以获得更好的不变性。文章在一致的脸部区域计算LBP描述子,分别得到眼睛、嘴巴和头发区域的LBP描述子。
是对应于嘴巴、眼睛、头发区域的LBP直方图距离。当照片有日期戳时,可以在公式中加入额外项来度量时间距离。
2、路径
构造好图之后,可以遍历整个图找到一个光滑连续的过渡。通过求解最短路径来获得最优解,dijkstra算法可以很容易的解决。通过在图中游走,我们可以获得任意长度的光滑路径,同时使用一些方法去避免重复。
3、优化以满足实时性的要求
3.1简化相似度描述子,考虑一些相关性(如嘴巴和眼睛等区域在构成表情时的高度相关性)。使用2D仿射图像对齐比用3D变形代价小,效果也不错。使用HOG特征替代使用LBP特征。
3.2使用贪心游走算法,而不采用最优路径。前者运算速度快。
3.3使用多线程。一个进程得到图和选择下一张照片,另外进程来渲染照片间的过渡效果。
3.4用户能够通过设定照片数量控制电影长度。在照片数量特别多或者延时要求高的情况下,还需要其他的优化方法。
4、过渡效果
变形技术能够产生极好的过渡,但需要准确的像素对齐。使用交叉溶解的方法更简单,在短的时间间隔内一幅图像渐入,一幅图像渐出。交叉溶解产生了真实的运动效果,图像边界能够光滑运动,并且能够合成真实的光照变化。交叉溶解流行于变形和图像渲染技术。
By Ira Kemelmacher-Shlizerman, Eli Shechtman, Rahul Garg, and Steven M. Seitz
《Moving Portraits》论文是利用同一个人的大量的照片来生成脸部动画。将人的照片集看成一个图,每幅照片看作一个节点,两幅照片的相似度看作边权重。构造动画序列的过程就是运用dijkstra算法在图中找出最短路径,得到最优化的图片序列之后,运用交叉溶解的方法来渲染照片序列以得到连续的动画。
1、构造图
每幅照片看作一个结点,边权重来刻画照片的相似度。照片相似度用面部外貌(表情、发型等等)、姿势、时间等等来刻画。
为了计算两幅图片的头部姿态距离,每幅图片要先用脸部检测器进行人脸检测,然后用基准点检测器找出一些基准点。下一步检测姿态,将检测到的人脸区域对齐到一个3D人脸模板模型。从旋转矩阵中估计出头部姿态的几个分量,计算出头部姿态距离。
为了计算面部表情的相似度,通过使用不同的描述子可以获得更好的不变性。文章在一致的脸部区域计算LBP描述子,分别得到眼睛、嘴巴和头发区域的LBP描述子。
是对应于嘴巴、眼睛、头发区域的LBP直方图距离。当照片有日期戳时,可以在公式中加入额外项来度量时间距离。
2、路径
构造好图之后,可以遍历整个图找到一个光滑连续的过渡。通过求解最短路径来获得最优解,dijkstra算法可以很容易的解决。通过在图中游走,我们可以获得任意长度的光滑路径,同时使用一些方法去避免重复。
3、优化以满足实时性的要求
3.1简化相似度描述子,考虑一些相关性(如嘴巴和眼睛等区域在构成表情时的高度相关性)。使用2D仿射图像对齐比用3D变形代价小,效果也不错。使用HOG特征替代使用LBP特征。
3.2使用贪心游走算法,而不采用最优路径。前者运算速度快。
3.3使用多线程。一个进程得到图和选择下一张照片,另外进程来渲染照片间的过渡效果。
3.4用户能够通过设定照片数量控制电影长度。在照片数量特别多或者延时要求高的情况下,还需要其他的优化方法。
4、过渡效果
变形技术能够产生极好的过渡,但需要准确的像素对齐。使用交叉溶解的方法更简单,在短的时间间隔内一幅图像渐入,一幅图像渐出。交叉溶解产生了真实的运动效果,图像边界能够光滑运动,并且能够合成真实的光照变化。交叉溶解流行于变形和图像渲染技术。
相关文章推荐
- 扫描转换直线段--DDA算法
- 计算机图形学国际知名会议与期刊
- 初涉openGL遇显卡问题【解决方案】
- 计算机图形学入门学习——阴影
- 计算机图形学——OpenGL开发库开发库
- 计算机图形学方向投稿国外期刊
- 梁友栋-Barsky裁剪算法
- 为VC++ 6.0 配置OpenGL 环境 [图形学]
- 计算机图形学 -- 像素点的生成 [非常详细的解释~]
- 计算机图形学 -- 基本图形 [之一] [矩形,三角形等]
- 计算机图形学 -- 基本图形 [之二] [glBegin参数Mode的应用] [圆,五角星,菱形等]
- bresenham直线画法及推导
- 多边形填充
- 光线追踪技术的理论和实践(面向对象)
- 算法系列之十二:多边形区域填充算法--扫描线填充算法(有序边表法) .
- 橡皮筋算法
- 2次B样条曲线
- 3次B样条曲线
- 拉格朗日插值曲线
- N阶贝塞尔曲线