当前位置: 首页 > news >正文

解密:智能美妆和动效自拍背后的技术

雷锋网按:本文来自腾讯优图,雷锋网已获授权。主要介绍了人脸识别系统的三大组成部分,并对手机相机能自动美颜的原因进行了深度剖析。

这是一个“看脸”的时代,一谈人脸技术,大家最为熟知就是人脸识别。该技术在金融、社保、教育、安防等领域表现活跃,成为AI技术领域的明星。优图微信公众号之前也重点介绍过优图人脸识别,本文主要介绍一些背后默默支持人脸识别的技术。欲了解优图人脸识别技术可参见《深度学习在人脸识别中的应用 ——优图祖母模型的“进化”》

一般而言,一个完整的人脸识别系统包含三大主要组成部分,即人脸检测、人脸配准以及人脸识别。三者流水线操作:人脸检测在图像中找到人脸的位置,接着人脸配准在人脸上找到眼睛、鼻子、嘴巴等面部器官的位置,最后人脸识别抽取特征与既有人脸比对计算相似度,确认人脸对应的身份。

                                          解密:智能美妆和动效自拍背后的技术

图1  人脸识别流程

1. 人脸配准简介

人脸配准(Face Alignment)又称人脸特征点检测与定位。人脸特征点不同于角点或SIFT特征点等通常意义上的图像特征点,人脸特征点通常是一组由人工事先定义的点(见图2)。根据不同应用场景,特征点有不同的数目,例如5点,68点,82点等。

解密:智能美妆和动效自拍背后的技术  

图2  人脸特征点检测与定位中常用的目标检测点

除了在人脸识别系统中起关键作用之外,人脸配准技术也在3D人脸建模,人脸动画,人脸表情分析,人脸美化与虚拟化妆,人脸自拍动效等领域得到了广泛的应用。打个小广告,优图人脸配准跟踪技术性能卓越,主流手机单帧处理速度可达到3ms以内,已经在“天天p图-动效自拍”、“手机QQ-短视频”、“手机QQ-视频聊天”“手机Qzone-动效相机”等应用场景落地。

解密:智能美妆和动效自拍背后的技术

图3  人脸美化与虚拟化妆

2.人脸配准研究现状

传统人脸配准研究

和其他人脸技术类似,光照、头部姿态、表情等的变化,以及遮挡都会很大程度影响人脸配准的精度。但是人脸配准也具有自身特点,首先特征点描述了人脸的结构(轮廓和五官),人脸结构是完整稳定的,五官相对位置固定;其次,头部姿态、表情等变化造成的特征点位置变化明显。传统人脸配准研究需要一直尝试寻找更加精准的特征描述来表达这种既确定又变化的点的组合,再根据描述符选择适当的优化求解方法,从而定位人脸特征点。

最直接被采用的特征描述符是颜色、灰度,利用肤色的不同对人脸各部分进行检测定位。 稍复杂些可选择各种纹理特征描述,如基于类Haar纹理特征和Adaboost训练级联分类器的人脸配准。以上特征描述都没有考虑特征点之间的位置关系,因此不具备维持合理的人脸结构。主动形状模型(Active Shape Models, ASM)和主动外观模型(Active Appearance Model, AAM)可以同时表达纹理和形状(shape)两种特征。

二者的形状特征都由点分布模型(Point Distribution Model, PDM)来表达。图4为600张人脸图像中人脸特征点的统计分布图,红点表示各特征点的均值。ASM的每个特征点的纹理特征是分别表示的,通过计算特征点周围邻域纹理信息生成每个特征点对应的响应图(Response Map)。图5中蓝色圈定区域用于计算响应图,红点指示实际人脸特征点位置。AAM使用整体人脸来描述纹理特征,通过将人脸特征点位置变换到标准形状上,得到与形状无关的人脸纹理,并基于主元分析方法对形状无关的人脸纹理进行建模。

解密:智能美妆和动效自拍背后的技术

深度人脸配准研究

从2006年开始,深度神经网络已经逐步在计算机视觉、语音识别和自然语言处理等多个领域取得了前所未有的成功,同样也给人脸配准研究带来了习习春风。学者们无需再挖空心思构建各种繁琐复杂的人脸描述符了。目前学术界工业界比较认可的深度人脸配准方法有两类:级联卷积网络人脸配准(Cascade CNN) 和多任务深度人脸配准。

如图6所示,Cascade CNN包含三级,每级包含多个卷积网络。第一级给出一个初始点位置估计,在此基础上后两级精细调整特征点位置。多任务配准将配准与其他相关人脸属性的训练同时进行。与脸部特征点相关的属性包含头部姿态,表情等,比如笑脸的嘴部很可能是张开的,正面脸特征点则对称分布。多任务有助于提升特征点检测定位精度。然而不同的任务会有不同的收敛速度和难度,训练难度加大。目前学界提供了两种解决方案调整不同的任务的训练进程:任务提早终止准则(task-wise early stopping criterion)和参数动态控制机制。

 解密:智能美妆和动效自拍背后的技术

图6  Cascade CNN 网络模型

3.优图人脸配准

不同应用场景的人脸配准

学术界人脸配准的研究日新月异,工业界产品应用对技术的要求也越来越高,且不同应用场景对人脸配准提出了不同的要求。

人脸识别业务的核心问题是人脸图像像素之间高层语义的对齐,即人脸关键特征点的定位。错误的特征定位会导致提取的人脸描述特征严重变形,进而导致识别性能下降。为了更好地支持人脸识别,我们加大了人脸框的变化的范围,以减少对人脸检测框大小的依赖。人脸特征点我们选择五点,既保证一定的人脸结构描述能力,又减小了配准误差对人脸识别的影响。

 解密:智能美妆和动效自拍背后的技术

图7 人脸识别

美妆需要人脸特征点达到超高精度定位,例如眼妆中的眼线睫毛,只有定位够精准,才能达到自然贴合的美妆效果。为了提供精度,我们采用了级联模型,先粗略定位人脸面部特征,再对五官进行精细化定位。

 解密:智能美妆和动效自拍背后的技术

图8  智能美妆

人脸自拍动效应用处理移动端视频,对配准的处理速度要求严格。传统人脸配准技术不具备判定跟踪是否成功的能力,为避免跟踪过程中出现跟丢的现象(跟踪到非人脸区域),必须依赖耗时较长的人脸检测,我们的人脸配准增加了人脸判定功能,减少对人脸检测的依赖。另外我们采用了瘦长型深度神经网络,并应用SVD分解进行模型压缩和算法加速,算法模型大小控制在1M,主流手机上的处理时间仅需3ms。模型大小和计算速度均为业界最高水准。

 解密:智能美妆和动效自拍背后的技术

视频1  人脸自拍特效

优图人脸配准的更新换代

优图实验室不断跟进技术发展趋势,更新版本。优图人脸配准技术从传统方法迁移到深度学习方法,从最新学术研究成果到最佳工程取舍,我们经过多轮的迭代更新,做了大量的创新和尝试。于2013年4月发布了人脸配准1.0版本,粗略定位人脸五官,4个月后精准定位的2.0版本也成功发布,并应用在趣味类产品中。之后的版本3.0精度大幅提高,同时在美妆产品中落地。4.0版本开始应用深度学习方法,精度得到了进一步提高,平均精度超过了人工水平。今年5月我们发布的最新版本5.0采用深度多任务学习方法,在速度和深度网络模型大小都得到了大幅优化,主流手机帧率超过200,模型1M,并自带人脸判定功能。简介中提到的人脸自拍动效应用就得到了此版本的支持。

4. 后续的研发计划

未来我们一方面着力提升已落地应用的用户体验,另一方面也积极探索新的应用场景。目前自拍视频的人脸配准跟踪效果仍存在不足。要解决此问题,提升用户体验依赖于进一步研究如何提升人脸配准的稳定性和精准度。除本文已提到的应用以外,优图人脸配准技术还可以应用于智能门禁系统、互联网金融核身、直播行业等众多领域。在新的应用领域,研究人脸配准技术如何满足新需求是我们必将面对的另一课题。


本文作者:陈圳


本文转自雷锋网禁止二次转载,原文链接

相关文章:

  • Linux I2C(一)之常用的几种实例化(i2c_client ) 【转】
  • 全是数据的物联网怎么把黑客挡在门外?
  • 无线充电两大标准合并 但你还得头疼选哪家
  • 乂学教育朋友印象创始人栗浩洋:AI教育,为学习效率带来10倍提升 | CCF-GAIR 2017...
  • 企业级闪存存储市场——抑或是供应商的墓地?
  • Attention-over-Attention Neural Networks for RC
  • 安全研究人员发现可以利用推特控制僵尸网络
  • 表的约束
  • ComponentOne 2017 V2版本正式发布
  • Rancher Labs CEO梁胜:简化操作,让技术真正用起来
  • SaaS 系统架构设计经验总结
  • 再总结一下周金根老师的自我导向型学习方法
  • 《工业控制网络安全技术与实践》一一2.5 PLC设备的技术原理
  • 《深度学习:Java语言实现》一一第1章 深度学习概述
  • Greenplum在企业生产中的最佳实践(下)
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 4个实用的微服务测试策略
  • C++类中的特殊成员函数
  • canvas 五子棋游戏
  • eclipse(luna)创建web工程
  • IDEA 插件开发入门教程
  • Python_OOP
  • uva 10370 Above Average
  • vue--为什么data属性必须是一个函数
  • 程序员该如何有效的找工作?
  • 近期前端发展计划
  • 七牛云假注销小指南
  • 前端之Sass/Scss实战笔记
  • 微信小程序设置上一页数据
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • $forceUpdate()函数
  • (1) caustics\
  • (C语言)逆序输出字符串
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (四)Linux Shell编程——输入输出重定向
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)基于IDEA的JAVA基础1
  • (转)shell调试方法
  • (转)可以带来幸福的一本书
  • (转载)Google Chrome调试JS
  • ***监测系统的构建(chkrootkit )
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .net专家(张羿专栏)
  • .ui文件相关
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化