Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ACM MM 2021 | 人脸可胖可瘦,浙大提出稳定连续的视频人脸参数化编辑

ACM MM 2021 | 人脸可胖可瘦,浙大提出稳定连续的视频人脸参数化编辑

作者头像
机器之心
发布于 2023-03-29 09:54:52
发布于 2023-03-29 09:54:52
6170
举报
文章被收录于专栏:机器之心机器之心

机器之心专栏

浙江大学计算机辅助设计与图形学国家重点实验室

来自浙江大学计算机辅助设计与图形学国家重点实验室的研究者,提出了一个鲁棒且易于实现的基于视频序列的人脸胖瘦参数化方法。即使在侧脸、长发、戴眼镜及轻微遮挡等极端情况下,该方法依旧能够取得连续稳定的结果。

短视频的流行催生了基于视频的人脸编辑需求。尽管基于图像的人脸编辑方法已经比较成熟,但直接将基于图像的编辑方法应用于人脸视频通常会产生不稳定、不连续的结果。

浙江大学计算机辅助设计与图形学国家重点实验室在人脸胖瘦参数化研究领域有着较为丰富的经验,他们曾建立了一个关于人脸软组织厚度的回归方程,自然合理地对三维人脸进行胖瘦编辑,然后将编辑后的结果重映射回二维图像。因为只改变脸部脂肪部分而不会引起骨骼形变,该方法能够避免出现不符合自然规律的人脸变化。

今年,该研究小组进一步提出了一个鲁棒且易于实现的基于视频序列的人脸胖瘦参数化方法。即使在侧脸、长发、戴眼镜及轻微遮挡等极端情况下,该方法依旧能够取得连续稳定的结果。

下图 1 展示了这项技术的实际效果:

图 1 每一行表示一个视频的不同帧,而每一列表示该帧不同胖瘦参数的结果

该成果的学术论文《Parametric Reshaping of Portraits in Videos》已被多媒体领域顶级国际学术会议 ACM Multimedia 2021 接收,作为 Oral 论文发表。视频结果可见论文主页: 

论文地址:http://www.cad.zju.edu.cn/home/jin/ACMMM2021/ACMMM2021.htm

 相关工作

该研究建立在基于图像的人脸胖瘦编辑方法之上。基于图像的方法分为四个步骤:

  • 首先,基于输入人脸图像进行三维人脸重建;
  • 第二步,结合人脸软组织厚度的线性回归方程编辑并形变三维人脸;
  • 第三步,将变形后的三维人脸重投影回二维图像上;
  • 最后,对图像人脸外的部分进行形变以适应新生成的人脸投影。

该方法能在图像领域取得不错的结果,但难以直接应用于视频。首先,在重建步骤的最开始,人脸特征点检测不够精确导致帧与帧之间特征点会发生抖动或者偏移,引起三维人脸不连续变化。其次,对于一个较长的视频,由于人脸在图像中的角度和位置的改变,很难保证第一帧重建得到的人脸模型形状和最后一帧重建得到的人脸模型形状是一致的,比如一个人虽然正脸偏圆,但只看侧脸却难以准确评估其胖瘦程度。除了重建阶段的困难,在图像变形期间的困难也会影响结果的稳定性。三维人脸变形前后的每个顶点都存在确定的映射关系,但在二维图像上这一关系却难以保证——胖瘦形变很可能会使得部分人脸边界区域从遮挡物(包括鼻子,脸颊)后浮现或者隐藏,导致简单通过变形前后三维人脸投影点建立的对应二维图像映射关系出现多种错误。而这种映射关系的错误会导致结果的不连续性。最后,即便我们同时保证了重建结果的一致性和人脸变形前后二维映射的连续性,由于人脸在视频中的位置和所占图像面积不一样,图像形变之后背景的扭曲也将变得不一致,从而导致生成视频后产生抖动或者明显伪像。

本文研究思想

该研究逐一解决基于图像的胖瘦编辑方法应用于视频时遇到的稳定性和连续性问题。该研究按照流程将问题分成两个阶段:稳定一致的人脸重建,以及连续的图像形变。

在重建阶段,分为三个步骤:

  • 首先,逐帧估计人脸姿态,这一步骤将只使用自然表情下的平均人脸进行估计,以减少参数量来节省计算消耗;
  • 其次,获取每一帧的大致姿态后,从所有视频帧中选取最能代表人脸形状的连续多帧,并对选中的帧进行联合优化,从而获得准确的三维人脸形状;
  • 最后,将准确的人脸形状作为输入,以第一个步骤获得的人脸姿态作为初值,逐帧优化得到每一帧的人脸表情参数。

在图像方法的优化基础上,该研究采用光流能量项平衡特征点检测抖动问题,采用边界能量项解决远离相机一侧特征点检测偏移问题,采用时序能量项保证帧间稳定性。该研究确保了整段视频只存在唯一一组人脸形状参数,同时建立起稳定连续的三维人脸序列。在三维人脸编辑时,该研究先将三维人脸模型中的表情参数分离,胖瘦编辑之后再将表情参数恢复到编辑后的三维人脸上。

在图像形变阶段,该研究提出了一个基于有向距离场的方案,通过建立变形前后人脸边界区域像素的密集映射获得连续的视频结果。该密集映射的建立首先借助变形前后三维模型存在映射关系这一特征,将形变前的二维人脸边界点逆投影至三维人脸模型上,与变形后三维人脸模型对应顶点的投影建立初始映射。然后,建立有向距离场,调整该初始映射,使得每个映射都准确对应着变形前后的人脸边界。最后,结合三维人脸结构,去除因为遮挡关系变化导致的映射突变情况,保证密集映射在帧与帧之间的连续性。获得的密集映射关系最终将作为控制点用于形变原图像以符合变形后的人脸模型投影,并使用优化方程降低背景区域的扭曲。最终结果显示该方法能够在大形变、佩戴眼镜、长发遮挡及其他存在短暂遮挡的情况下获得视觉稳定无伪像的结果。

下图为该研究的 Pipeline,具体细节参见论文:

结果展示

所展示结果均来自原论文主页提供的视频。下图展示了同一个视频不同胖瘦尺度的结果,其中为负数表示变瘦,为正数表示变胖,数值的绝对值表示变胖变瘦的程度:

下图展示了人物站在复杂背景前面的结果,中间小图为视频原始帧,左右分别为变胖以及变瘦之后的该图,在视频中需要仔细观察靠近人脸附近的砖块,可以看到细微扭曲:

下图展示了非正脸场景下的变形情况:

下图展示了被轻微遮挡的结果,左图为原图,右图为变形后的相同帧:

下图展示被头发遮挡部分脸颊并出现头部姿态大幅度移动的情况,左图为原图,右图为变形后的相同帧:

作者简介

论文第一作者唐祥峻,浙江大学 CAD&CG 国家重点实验室攻读博士。研究方向为虚拟人虚拟现实、特效模拟。

个人主页:http://yuyujunjun.github.io/

论文作者孙文欣,浙江大学 CAD&CG 国家重点实验室硕士。研究方向为人脸编辑。

论文作者杨永亮,英国巴斯大学副教授。2009 年于清华大学计算机科学与技术系获得博士学位,2009-2011 年为阿卜杜拉国王科技大学 (KAUST) 博士后研究员, 2011 年 9 月至 2014 年 8 月在 KAUST 视觉计算中心担任助理研究员。发表 Siggraph、Siggraph Asia 论文 9 篇。主要研究方向为数字几何处理、虚拟现实和人工智能

个人主页:http://www.yongliangyang.net/

论文通讯作者金小刚,浙江大学计算机科学与技术学院教授,博士生导师。「十三五」国家重点研发计划首席科学家,浙江大学 - 腾讯游戏智能图形创新技术联合实验室主任,浙江省虚拟现实产业联盟理事长,中国计算机学会虚拟现实与可视化专委会副主任委员,杭州钱江特聘专家。第九届霍英东青年教师基金、浙江省杰出青年基金获得者,入选教育部新世纪优秀人才支持计划。在 ACM TOG (Proc. of Siggraph)、IEEE TVCG 等国际重要学术刊物上发表论文 140 多篇。2008 年获教育部高等学校科学研究优秀成果奖自然科学奖一等奖,2017 年获浙江省科技进步二等奖,2015 年获美国 ACM Recognition of Service Award 奖。获国际计算机动画学术会议 CASA'2017、CASA'2018 最佳论文奖,《计算机真实感图形的算法基础》获 2001 年国家科技图书二等奖。Email: jin@cad.zju.edu.cn。

个人主页:http://www.cad.zju.edu.cn/home/jin/

过去30年,微软研究院一直通过跨学科、跨机构、跨地域的科学研究,为微软、为社会畅想和实现技术远景,致力于培育一个有韧性、可持续且健康的全球社会,并确保技术值得信赖,可以让每一个人受益。

为了进一步探索科学与技术发展的未来,由微软全球八大研究院携手倾力打造的首届微软研究峰会 Microsoft Research Summit 2021将于10月19日至21日线上举办。

来自世界各地的300余位顶尖科学家和技术领导者将带来共150场分享,包括微软公司董事长兼首席执行官 Satya Nadella,首席技术官 Kevin Scott,微软全球资深副总裁、微软研究院负责人 Peter Lee……内容围绕“科学、赋能、可持续发展、医疗健康、信任”五大主题展开,话题涵盖人工智能的行业应用、机器学习、可持续发展、隐私与安全、健康和生命科学等等。

欢迎大家扫描二维码或点击阅读原文注册 Microsoft Research Summit 2021,共享这场全球学术盛宴!

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
第四十三章: 基于SpringBoot & RabbitMQ完成TopicExchange分布式消息消费
我们在之前的两个章节第四十一章: 基于SpringBoot & RabbitMQ完成DirectExchange分布式消息消费、第四十二章: 基于SpringBoot & RabbitMQ完成DirectExchange分布式消息多消费者消费提高了RabbitMQ消息队列的DirectExchange交换类型的消息消费,我们之前的章节提到了RabbitMQ比较常用的交换类型有三种,我们今天来看看TopicExchange主题交换类型。 本章目标 基于SpringBoot平台完成RabbitMQ的TopicE
恒宇少年
2018/06/27
1.3K0
第四十一章: 基于SpringBoot & RabbitMQ完成DirectExchange分布式消息消费
消息队列目前流行的有KafKa、RabbitMQ、ActiveMQ等,它们的诞生无非不是为了解决消息的分布式消费,完成项目、服务之间的解耦动作。消息队列提供者与消费者之间完全采用异步通信方式,极力的提高了系统的响应能力,从而提高系统的网络请求吞吐量。 每一种的消息队列都有它在设计上的独一无二的优势,在实际的项目技术选型时根据项目的需求来确定。 本章目标 基于SpringBoot项目整合RabbitMQ消息队列,完成DirectExchange(路由键)分布式消息消费。 SpringBoot 企业级核心技术
恒宇少年
2018/06/27
1.3K0
第四十五章:基于SpringBoot 设计业务逻辑异常统一处理
在我们平时的项目研发过程中,异常一般都是程序员最为头疼的问题,异常的抛出、捕获、处理等既涉及事务回滚,还会涉及返回前端消息提醒信息。那么我们怎么设计可以解决上面的两个的痛点呢?我们可不可以统一处理业务逻辑然后给出前端对应的异常提醒内容呢? 本章目标 基于SpringBoot平台构建业务逻辑异常统一处理,异常消息内容格式化。 SpringBoot 企业级核心技术学习专题 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spri
恒宇少年
2018/06/27
1.9K0
第二十七章:SpringBoot使用ApplicationEvent&Listener完成业务解耦
ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听,监听具体的实现内容是什么,发布者的工作只是为了发布事件而已。 我们平时日常生活中也是经常会有这种情况存在,如:我们在平时拔河比赛中,裁判员给我们吹响了开始的信号,也就是给我们发布了一个开始的事件,而拔河双方人员都在监听着这个事件,一旦事件发布后双方人员就开始往自己方使劲。而裁判
恒宇少年
2018/06/27
1.1K0
第三十章:SpringBoot使用MapStruct自动映射DTO
MapStruct是一种类型安全的bean映射类生成java注释处理器。 我们要做的就是定义一个映射器接口,声明任何必需的映射方法。在编译的过程中,MapStruct会生成此接口的实现。该实现使用纯java方法调用的源和目标对象之间的映射,MapStruct节省了时间,通过生成代码完成繁琐和容易出错的代码逻辑。下面我们来揭开它的神秘面纱 本章目标 基于SpringBoot平台完成MapStruct映射框架的集成。 SpringBoot 企业级核心技术学习专题 专题 专题名称 专题描述 001 Spring
恒宇少年
2018/06/27
5.5K0
第四十二章: 基于SpringBoot & RabbitMQ完成DirectExchange分布式消息多消费者消费
在上一章第四十一章: 基于SpringBoot & RabbitMQ完成DirectExchange分布式消息消费我们讲解到了RabbitMQ消息队列的DirectExchange路由键消息单个消费者消费,源码请访问SpringBoot对应章节源码下载查看,消息队列目的是完成消息的分布式消费,那么我们是否可以为一个Provider创建并绑定多个Consumer呢? 本章目标 基于SpringBoot平台整合RabbitMQ消息队列,完成一个Provider绑定多个Consumer进行消息消费。 Spring
恒宇少年
2018/06/27
7440
第二十八章:SpringBoot使用AutoConfiguration自定义Starter
在我们学习SpringBoot时都已经了解到starter是SpringBoot的核心组成部分,SpringBoot为我们提供了尽可能完善的封装,提供了一系列的自动化配置的starter插件,我们在使用spring-boot-starter-web时只需要在pom.xml配置文件内添加依赖就可以了,我们之前传统方式则是需要添加很多相关SpringMVC配置文件。而spring-boot-starter-web为我们提供了几乎所有的默认配置,很好的降低了使用框架时的复杂度。 因此在使用xx.starter时
恒宇少年
2018/06/27
1.6K0
第三十九章:基于SpringBoot & Quartz完成定时任务分布式单节点持久化
定时任务在企业项目比较常用到,几乎所有的项目都会牵扯该功能模块,定时任务一般会处理指定时间点执行某一些业务逻辑、间隔时间执行某一些业务逻辑等。我们在之前有讲过SpringBoot是已经集成了定时任务的,详见:第二十六章:SpringBoot使用@Scheduled创建定时任务,那么我们本章将会采用外置的quartz定时任务框架来完成定时任务的分布式单节点持久化,我们为什么要持久化定时任务呢? 在一些项目中定时任务可能是必不可少的,由于某种特殊的原因定时任务可能丢失,如重启定时任务服务项目后,原内存中的定时任
恒宇少年
2018/06/27
2.5K0
第四章:使用QueryDSL与SpringDataJPA实现多表关联查询
对于业务逻辑复制的系统来说都存在多表关联查询的情况,查询的返回对象内容也是根据具体业务来处理的,我们本章主要是针对多表关联根据条件查询后返回单表对象,在下一章我们就会针对多表查询返回自定义的对象实体。 本章目标 基于SpringBoot框架平台完成SpringDataJPA与QueryDSL多表关联查询返回单表对象实例,查询时完全采用QueryDSL语法进行编写。 构建项目 我们使用idea工具先来创建一个SpringBoot项目,添加的依赖跟第三章:使用QueryDSL与SpringDataJPA完成Up
恒宇少年
2018/06/27
3.4K0
第六章:使用QueryDSL的聚合函数
在企业级项目开发过程中,往往会经常用到数据库内的聚合函数,一般ORM框架应对这种逻辑问题时都会采用编写原生的SQL来处理,而QueryDSL完美的解决了这个问题,它内置了SQL所有的聚合函数下面我们简
恒宇少年
2018/06/27
3.7K0
第七章:使用QueryDSL与SpringDataJPA实现子查询
在上一章我们讲到了QueryDSL的聚合函数,让我们重新认识了QueryDSL的便利之处,它可以很好的使用原生SQL的思想来进行Java形式的描述,编写完成也不需要考虑更换数据库存在的不兼容问题。当然QueryDSL还有很多我们没有发掘出来的核心技术,我们今天来讲解下”子查询“,看看QueryDSL是怎么完美的诠释了使用Java写SQL。 本章目标 基于SpringBoot平台完成QueryDSL整合JPA实现多表、单表子查询。 构建项目 我们使用idea工具创建一个SpringBoot项目,然后添加部分依
恒宇少年
2018/06/27
5.4K0
第三十七章:基于SpringBoot架构以及参数装载完成接口安全认证
在上一章第三十六章:基于SpringBoot架构重写SpringMVC请求参数装载中我们说到了怎么去重写SpringMVC参数装载,从而来完成我们的需求。本章内容会在上一章的基础上进行修改! 企业中接口编写是再频繁不过的事情了,现在接口已经不仅仅用于移动端来做数据服务了,一些管理平台也同样采用了这种方式来完成前后完全分离的模式。不管是接口也好、分离模式也好都会涉及到数据安全的问题,那我们怎么可以很好的避免我们的数据参数暴露呢? 本章目标 基于SpringBoot平台实现参数安全传输。 SpringBoot
恒宇少年
2018/06/27
1.5K0
第二章:使用QueryDSL与SpringDataJPA实现单表普通条件查询
在企业开发中ORM框架有很多种如:Hibernate,Mybatis,JdbcTemplate等。每一种框架的设计理念是不一样的,Hibernate跟我们本章讲解的SpringDataJPA是一致的框架都是全自动理念作为设计核心,让用户更少的去写SQL语句通过简单的配置就可以实现各种查询。而Mybatis框架则是半自动理念作为设计核心,SQL让用户自己定义实现了更好的灵活性。 本章目标 本章我们目标实现QueryDSL通用查询语言整合SpringDataJPA完成单表的查询多样化。 构建项目 下面我们先来创
恒宇少年
2018/06/27
1.7K0
第五章:使用QueryDSL与SpringDataJPA实现查询返回自定义对象
在我们实际项目开发中,往往会遇到一种多表关联查询并且仅需要返回多表内的几个字段最后组合成一个集合或者实体。这种情况在传统的查询中我们无法控制查询的字段,只能全部查询出后再做出分离,这种也是我们最不愿意看到的处理方式,这种方式会产生繁琐、复杂、效率低、代码阅读性差等等问题。QueryDSL为我们提供了一个返回自定义对象的工具类型,而Java8新特性Collection中stream方法也能够完成返回自定义对象的逻辑,下面我们就来看下这两种方式如何编写? 本章目标 基于SpringBoot平台完成SpringD
恒宇少年
2018/06/27
4.8K0
第三十八章:基于SpringBoot架构使用Profile完成打包环境分离
在中大型企业项目开发中,环境分离是必不可少的一步,然而现在的开发人员也只是有这个概念,还是有很多项目采用普通的方式,每次打包发布部署的时候改动一大堆的配置文件,有一个地方忘记改就相当于白更新了一次系统,这种修改配置文件完成环境更换的方式给我们带来了很多的困扰,浪费了我们很多宝贵的时间!早在Spring 3.1版本就已经为我们提供了环境分离的相关注解配置方式,不过在传统的Spring项目中配置Profile确实有点麻烦,在Spring版本的不断更新直到后来SpringBoot成长起来后Profile已经能够很
恒宇少年
2018/06/27
6690
第三十六章:基于SpringBoot架构重写SpringMVC请求参数装载
在国内企业开发项目中大多数都已经偏向Spring家族式的开发风格,在前几年国内项目都是以Structs2作为Web开发的主导,不过由于近几年发生的事情确实让开发者对它失去了以往的信心。与此同时Spring家族发布了SpringMVC,而且完美的整合Spring来开发企业级大型Web项目。它有着比Structs2更强大的技术支持以及更灵活的自定义配置,接下来我们就看看本章的内容,我们自定义实现SpringMVC参数绑定规则,根据业务定制参数装载实现方式。 本章目标 根据项目定制SpringMVC参数状态并了解
恒宇少年
2018/06/27
1.4K0
第四十六章:SpringBoot & RabbitMQ完成消息延迟消费
在2018-3-1日SpringBoot官方发版了2.0.0.RELEASE最新版本,新版本完全基于Spring5.0来构建,JDK最低支持也从原来的1.6也改成了1.8,不再兼容1.8以下的版本,更多新特性请查看官方文档。 本章目标 基于SpringBoot整合RabbitMQ完成消息延迟消费。 构建项目 注意前言 由于SpringBoot的内置扫描机制,我们如果不自动配置扫描路径,请保持下面rabbitmq-common模块内的配置可以被SpringBoot扫描到,否则不会自动创建队列,控制台会输出4
恒宇少年
2018/06/27
8570
RESTful规范Api最佳设计实践
RESTful是目前比较流行的接口路径设计规范,基于HTTP,一般使用JSON方式定义,通过不同HttpMethod来定义对应接口的资源动作,如:新增(POST)、删除(DELETE)、更新(PUT、PATCH)、查询(GET)等。
恒宇少年
2019/10/10
1K0
第三十五章:SpringBoot与单元测试的小秘密
单元测试对于开发人员来说是非常熟悉的,我们每天的工作也都是围绕着开发与测试进行的,在最早的时候测试都是采用工具Debug模式进行调试程序,后来Junit的诞生也让程序测试发生了很大的变化。我们今天来讲解下基于SpringBoot结合Junit怎么来完成单元测试。 本章目的 基于SpringBoot平台整合Junit分别完成客户端、服务端的单元测试。 SpringBoot 企业级核心技术学习专题 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组
恒宇少年
2018/06/27
1.5K0
第三十四章:SpringBoot配置类WebMvcConfigurerAdapter
WebMvcConfigurerAdapter配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,下面我们来看一下该类内的常用方法。 本章目标 继承WebMvcConfigurerAdapter采用JavaBean形式实现个性化配置定制。 SpringBoot 企业级核心技术学习专题 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Boot 核心
恒宇少年
2018/06/27
1.4K0
推荐阅读
相关推荐
第四十三章: 基于SpringBoot & RabbitMQ完成TopicExchange分布式消息消费
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档