人脸图像是计算机视觉领域中研究历史最久,也是应用最广泛的图像。近几年随着研究方法的进步以及相关数据集的收集,人脸风格化成为了一个非常热门的研究领域和应用方向,本文我们来介绍其中的核心技术和相关资源。

作者&编辑 | 言有三

1. 什么是人脸风格化

所谓人脸风格化,就是将人脸头像转换为特定的风格头像,最常见的包括素描肖像风格,卡通形象(动画)风格,油画风格,分别如下图所示:

素描肖像风格的重点在于保持人脸的轮廓和重要五官信息,去掉无关的颜色,纹理等内容,它模仿的是就是素描,相对比较严肃。

卡通形象(动画)风格的重点在于简洁,统一的颜色和纹理风格,对五官进行适当的美化(比如眼睛,鼻子的调整)。

油画风格的重点则在于渲染有艺术感染力的颜色和纹理,对整个内容的改变有时候比较大。

三者的相同之处在于,需要保持人脸的身份信息,即可辨识为本人。

不同之处在于,肖像风格很少会对人脸五官作出大的调整,即不会将小眼睛变为大眼睛,大鼻子变为小鼻子,因为那样就不写实了。而卡通风格的其中一个重点就是要对五官进行调整,因为卡通形象的颜色和纹理比较单一,如果不进行美化,大众脸的五官缺陷很容易被放大。油画风格的差异则比较大,主要在于颜色和纹理风格的调整程度。

下面我们来分析这三类风格的核心技术点。

2. 素描肖像风格

从上图肖像风格我们其实可以看出,肖像风格的重点在于线条轮廓的完整性,均匀性,而人脸的形状和五官位置其实不需要作出调整,那么一种最成熟的技术就是边缘检测。

以OpenCV库中具有代表性的两种边缘检测算法为例:

Sobel是一种基于简单的基于梯度信息的方法,Random forests则是基于局部块分类的方法,他们各自有特点。比如Sobel的结果对比度更高,而Random forests的结果更加干净简单。

基于边缘检测作出素描肖像风格,重点就在于参数的调试和后处理,在边缘的召回率和准确率之间取得平衡,代表性的方法可以参考文[2]。这一类方法比较容易受到噪声的影响,如果去细看前面的那张处理图,就能看出一些细节问题。

虽然素描肖像风格本身也可以用最新的一些方法进行生成,比如接下来会介绍的基于图像风格化和图像翻译的方法,但是相对于传统的方法其效果改进并不是非常明显,因此我们就不再做展开解读。

[1] Dollar P, Zitnick C L. Structured Forests for Fast Edge Detection[C]. international conference on computer vision, 2013: 1841-1848.

[2] Winnemoller H, Kyprianidis J E, Olsen S C, et al. Special Section on CANS: XDoG: An eXtended difference-of-Gaussians compendium including advanced image stylization[J]. Computers & Graphics, 2012, 36(6): 740-753.

3. 油画风格

说起风格化技术,研究历史其实比较久远,早期的风格迁移方法以Image Analogie[3]为代表,是基于图像块的纹理仿真运算,由于不是基于学习的方法,效果和影响力很有限。真正让大众认识这一门技术的,还是2015年左右的基于卷积神经网络的风格迁移论文[4]的提出,展示了如何将图像进行油画风格化的应用,这是早期基于图像的风格迁移算法。

所谓风格迁移,即将某一幅图像的风格(上图中的小图,也称为风格图)迁移到另一幅图像(上图a,也被称为内容图),得到目标结果图(上图b),目标结果图同时拥有了风格图的风格和内容图的内容。

内容是图像的语义信息,指的是图里包含的目标及其位置,它属于图像中较为底层的信息,可以使用灰度值,目标轮廓等进行描述。风格则指代笔触,颜色等信息,是更加抽象和高层的信息。

图像风格可以用数学来描述,其中常用的是格拉姆矩阵(Gram Matrix),它的定义为n维欧氏空间中任意k个向量的内积所组成的矩阵。

基于图像特征的Gram矩阵计算方法如下。

其中Fik_l是向量化后的第l个网络层的特征图i和特征图j的内积,k即向量的长度。

格拉姆矩阵可以看做特征之间的偏心协方差矩阵,即没有减去均值的协方差矩阵,内积之后得到的矩阵的对角线元素包含了不同的特征,而其他元素则包含了不同特征之间的相关信息。因此格拉姆矩阵可以反应整个图像的风格,如果我们要度量两个图像风格的差异,只需比较他们格拉姆矩阵的差异即可。

假设我们有两张图,一张是欲模仿的风格图a,一张是内容图p,想要在不更改内容图p的语义内容的基础上生成带有风格图a的风格的结果图x,就需要同时最小化风格损失和内容损失,即重建风格损失和内容损失。

上图包含了两个重建通道。

(1) 内容重建通道。选择某一个抽象级别较高的特征层计算内容损失,它的主要目标是保留图像主体的内容和位置,损失计算如下,使用了特征的欧式距离,和分别是第l层生成图和内容图的特征值。

(2) 风格重建通道。与内容重建不同,CNN从底层到高层的每一层都会对损失有贡献,因为风格采用格拉姆矩阵进行表述,所以损失也是基于该矩阵计算,每一层加权相加,第l层的损失定义如下。

整个的风格损失函数计算则如下:

上述的风格迁移算法中内容重建不使用多尺度,是因为内容图本身只需要维持可识别的内容信息,多尺度不仅会增加计算量,还引入噪声,抽象层次较低的低尺度关注了像素的局部信息,可能导致最终渲染的结果不够平滑。风格重建使用多尺度不仅有利于模型的收敛,而且兼顾了局部的纹理结构细节和整体的色彩风格。

上述方法是基于图的风格化方法,非常耗时,当前的主流方法是基于模型的方法,可以实现单一模型进行单种,多种,甚至任意风格的转换,感兴趣的同学可以阅读综述文章[5]进行学习。当然在基于模型的方法中,仍然会借鉴格拉姆矩阵进行风格的表示。

[3] Hertzmann A, Jacobs C E, Oliver N, et al. Image analogies[C]. international conference on computer graphics and interactive techniques, 2001: 327-340.

[4] Gatys L A, Ecker A S, Bethge M, et al. A Neural Algorithm of Artistic Style[J]. arXiv: Computer Vision and Pattern Recognition, 2015.

[5] Jing Y, Yang Y, Feng Z, et al. Neural Style Transfer: A Review[J]. arXiv: Computer Vision and Pattern Recognition, 2017.

4. 动画风格

动画风格,这里特指的就是有某种动画作品风格的效果了,以日本的二维动画为代表,最近抖音新增的特效就属于这种,实际效果如下:

上图我分别测试了正面,大角度,以及本身就是动画的图像,效果都还不错。它采取的是对人脸进行风格化处理,对其他区域进行类似的颜色和纹理迁移的方案。

可以看出的是,尽管输入图的颜色纹理有很大差异,但是输出图则非常一一致,这说明其本质是从输入到特定风格的映射,哪怕输入图本身就是动画,也会被映射到特定的风格。

要实现这一类风格的生成,需要对输入图进行风格编码,最适合的技术便是GAN,其中人脸编码方法中StyleGAN[6]是最成功的方法。不过对于人脸动画风格来说,改变的是整体风格,而不是局部细节,所以原理上更为简单一些。

使用GAN进行风格迁移是一个非常大的研究领域,方法很多,我们这里只能对其中最核心的技术进行介绍,以Pix2Pix和CycleGAN为代表,前者需要成对数据进行训练,而后者则不需要,所以CycleGAN[7]才是更加现实的选择。

CycleGAN通过对源域图像进行两步变换:首先尝试将其映射到目标域,然后返回源域得到二次生成图像,从而消除了在目标域中图像配对的要求,这是一个循环的结构,因此称之为CycleGAN,框架示意图如下:

从上图我们可以看出CycleGAN其实就是两个方向相反的单向GAN,它们共享两个生成器,然后各自有一个判别器,加起来总共有两个判别器和两个生成器。一个单向GAN有两个loss,CycleGAN加起来总共有四个loss。

X和Y分别表示两个域的图像,可知这里存在两个生成器G和F,分别用于从X到Y的生成和Y到X到生成,包含两个判别器,分别是Dx和Dy。完整的loss如下:

前两项就是普通的loss,Lcyc则是CycleGAN框架的重点。

背后的意义就是样本从一个空间转换到另一个空间后,反之还可以转换回来。

直接使用CycleGAN是不可能得到一个工业界的模型,因为CycleGAN确缺少对人脸语义信息的理解,会得到下面这样的效果。

所以需要对其进行改进,让它能够理解语义信息,只处理该处理的区域,保证人脸五官分布的合理,其中有两个方法是比较典型的,都是基于CycleGAN的改进,对人脸进行风格化的主流算法基本无出其右。

一个是使用关键点进行约束的方法[8],通过增加关键点预测任务,来约束输出图像的五官分布。

另一个是基于注意力机制的方法[8],使用注意力机制对人脸的有效区域进行学习。

下面是使用文[9]方法处理的结果,可知效果要好很多了,这是一个非常有希望的方法,对数据集进行优化后,有望取得很好的效果。

关于详细的工程解读,我们之前有过文章,大家可以参考。

【百战GAN】二次元宅们,给自己做一个专属动漫头像可好!

动画风格化相比于素描和油画,对细节比较敏感,因为使用了特征编码,难点在于人脸的五官分布不能丢失或者错乱,其中人脸图像中的经典难题会对结果造成很大影响,比如光照,姿态等

下图展示了处理失败的案例。

[6] Karras T, Laine S, Aila T. A style-based generator architecture for generative adversarial networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 4401-4410.

[7] Zhu J Y, Park T, Isola P, et al. Unpaired image-to-image translation using cycle-consistent adversarial networks[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2223-2232.

[8] Wu R, Gu X, Tao X, et al. Landmark Assisted CycleGAN for Cartoon Face Generation.[J].arXiv: Computer Vision and Pattern Recognition, 2019.

[9] Kim J , Kim M , Kang H , et al. U-GAT-IT: Unsupervised Generative Attentional Networkswith Adaptive Layer-Instance Normalization for Image-to-Image Translation[J]. 2019.

5. 人脸风格化数据集

人脸的风格化在娱乐社交领域里有非常广泛的应用,下面我们给大家介绍一些用得上的数据集。

(1) CUFSF

数据集地址:http://mmlab.ie.cuhk.edu.hk/archive/cufsf/。

发布于2009年,这是一个人像素描数据集,原图来自于FERET,有1195张成对的灰色正面肖像图和对应的素描图。

(2) IIIT-CFW1.0

数据集地址:http://cvlab.cse.msu.edu/siw-spoof-in-the-wild-database.html。

发布于2016年,包含100个名人的8928张卡通图片,同时也附带了1000张真实图。

(3) CartoonSet10/100k

数据集地址:https://google.github.io/cartoonset/download.html。

发布于2017年,有两个子集,CartoonSet10k和CartoonSet100k,分别包含10000和100000张卡通人脸图。每一张卡通人脸图都有16个组件,其中12个面部属性和4个颜色属性。

其中颜色属性来自于一个离散的RGB集合,每一个属性的种类可以低至3种,高达11种。比如chin的长度就包括short、medium、long一共三种,而发型就有111种。所有属性及其集合大小统计如下:

艺术风格总共包括:3种下巴长度(chin_length)、3种眼睛角度(eye_angle)、2种睫毛可见与否属性(eye_lashes)、2种眼睑样式(eye_lid)、14种眉毛形状(eyebrow_shape)、2种眉毛宽度(eyebrow_weight)、7种脸型(face_shape)、15种面部发型(facial_hair,包括光头)、12种眼镜(glasses,包括无眼镜)、111种头部发型(head hair)。

颜色风格包括:5种眼虹膜颜色(eye_color)、11种面部皮肤颜色(face_color)、7种眼镜颜色(glasses_color)、10种头发颜色(hair_color)。

比例风格包括:3种眼睛眉毛距离(eye_eyebrow_distance)、3种眼缝大小(eye_slant)、4种眉毛厚度(eyebrow_thickness)、3种眉毛宽度(eyebrow_width)。

所有的元素及其变种都是由同一个艺术家Shiraz Fuman绘制而成,最终得到约250个卡通艺术元素,可以组合成约108种样式。所有的艺术元素都是采用顺序分层的方式方便进行渲染,比如脸型需要依赖于眼睛和眼睛,而发型比较复杂有两个元素,一个在人脸上一层,一个在人脸下一层,总共有8层,头发背景、人脸、头发前景、眼睛、眼睫毛、嘴巴、面部头发、眼镜。

从属性到艺术的映射也是有艺术家确定的,这样任意一个属性的选择都能获得视觉好看的效果,而不至于对不齐,有时候需要一些交互,比如不同脸型的“短胡子”属性的创作。

(4) self2anime

数据集地址:https://github.com/taki0112/UGATIT。

发布于2019年,这是一个漫画人脸数据集,首先使用漫画人脸检测算法对Anime-Planet1上的图片进行了检测,最后留下了女性的人脸图共3500张,其中3400张作为训练,100张作为测试。

(5) Danbooru2019

数据集地址:https://www.gwern.net/Danbooru2019#danbooru2018 。

Danbooru2019是一个动漫人物数据集,拥有超过300百万的图片。有研究者从中选择了一些图片组建了动漫头像数据集,共140000张,图像大小为512*512,如下,地址为http://www.seeprettyface.com/mydataset_page3.html#anime。

其他还有一些比较小和老的数据集,这里就不做过多的介绍,感兴趣的读者可以自行去了解更多。

6. 如何学习以上算法

在上面我们介绍了用于人脸风格化的核心技术,涉及人脸图像的各种算法,风格迁移算法,生成对抗网络,如果想要长期进行学习,可以参考有三AI秋季划的人脸算组,图像质量组,GAN组,可分别学习相关内容。

详情可以阅读下文介绍:

【通知】如何让你的2020年秋招CV项目经历更加硬核,可深入学习有三秋季划4大领域32个方向

如果你对以上人脸数据集感兴趣,在有三AI知识星球的数据集板块中,我们提供了以上数据集的详细解读以及下载方式,有需要的同学可以加入。

而人脸风格化相关的算法,也有诸多介绍。

总结

本次我们给大家介绍了人脸风格化相关核心技术和数据集,人脸图像属于最早被研究的一类图像,也是计算机视觉领域中应用最广泛的一类图像,其中需要使用到几乎所有计算机视觉领域的算法,可以说掌握好人脸领域的各种算法,基本就玩转了计算机视觉领域。

如何学习人脸图像算法

如果你想系统性地学习各类人脸算法并完成相关实战,并需要一个可以长期交流学习,永久有效的平台,可以考虑参加有三AI秋季划-人脸图像算法组,完整的介绍上面有链接,总体的学习路线如下:

转载文章请后台联系

侵权必究

往期精选

  • 【杂谈】2020年如何长期、系统,全面地学习深度学习和计算机视觉,这是有三AI的完整计划

  • 【总结】有三AI秋季划图像质量组3月直播讲了哪些内容,为什么解决好底层图像处理问题那么重要

  • 【总结】有三AI秋季划人脸算法组3月直播讲了哪些内容,计算机视觉你不可能绕开人脸图像

  • 【总结】有三AI秋季划模型优化组3月直播讲了哪些内容,为什么每一个从事深度学习的同学都应该掌握模型优化的内容

【技术综述】人脸风格化核心技术与数据集总结相关推荐

  1. 风格化图像_【技术综述】人脸风格化核心技术与数据集总结

    我的新书<深度学习之人脸图像算法>市了,欢迎大家关注! 言有三新书来袭,业界首次深入全面讲解深度学习人脸图像算法​mp.weixin.qq.com 人脸图像是计算机视觉领域中研究历史最久, ...

  2. 【技术综述】人脸妆造迁移核心技术总结

    美颜和美妆是人脸中很常见的技术,在网络直播以及平常的社交生活中都有很多应用场景.常见的如磨皮,美白,塑形等美颜技术我们已经比较熟悉了,而本文重点介绍的是人脸妆造迁移的核心技术及其相关资源. 作者&am ...

  3. 【杂谈】篇篇精华,有三AI不得不看的技术综述(超过100篇核心干货)

    文/编辑 | 言有三 有三AI很少写零散的报导,因为我们的文章通常都是提炼与总结,一般遇到一个新方向,找技术综述读一读是最合适的开始,大家也可以拓展一下自己的知识边界,今天总结一下有三AI迄今为止发过 ...

  4. 【技术综述】一文道尽“人脸数据集”

    言有三 毕业于中国科学院,计算机视觉方向从业者,有三工作室,有三AI学院等创始人 作者 | 言有三 编辑 | 言有三 今天,给大家送上一份大礼 没错,我就是喜欢写一些"一文道尽" ...

  5. 【技术综述】最全人脸数据集收录

    文章首发与微信公众号<有三AI> [技术综述]一文道尽"人脸数据集" 今天,给大家送上一份大礼 没错,我就是喜欢写一些"一文道尽" 这一次我将从人脸 ...

  6. 【技术综述】一文道尽“人脸数据集”(转载)

    这一次我将从人脸检测,关键点检测,人脸识别,人脸表情,人脸年龄,人脸姿态等几个方向整理出人脸领域有用的数据集清单,不全也有9成全吧. 01 人脸检测 所谓人脸检测任务,就是要定位出图像中人脸的大概位置 ...

  7. 【通知】3月第三周直播预告,模型精简前沿技术,人脸分析与编辑,图像风格化...

    文/编辑 | 言有三 我们3月份给有三AI秋季划小组备了4场突击直播,了解详细可读. [杂谈]备战3月春招!深入掌握模型优化,人脸算法,图像质量等24个核心领域! 针对每一个方向,本月每周有一次直播( ...

  8. 【技术综述】视频分类/行为识别研究综述,从数据集到方法

    视频分类/行为识别是计算机视觉领域中非常有挑战性的课题,因为其不仅仅要分析目标体的空间信息,还要分析时间维度上的信息,如何更好的提取出空间-时间特征是问题的关键.本文总结了该领域的技术进展和相关数据集 ...

  9. 【技术综述】人脸年龄估计研究现状

    文章首发于微信公众号<与有三学AI> [技术综述]人脸年龄估计研究现状 今天给大家带来一篇人脸识别中的年龄估计技术,年龄特征作为人类的一种重要生物特征,计算机要如何基于人脸图像估计年龄呢? ...

最新文章

  1. html5初探ppt,HTML5---HTML5初探151019解析.ppt
  2. 30人NLP公司获4000万美元投资,杜兰特也入股了
  3. java如何解决高并发症,一整套Java线上故障排查技巧,爱了!
  4. 07-图6 旅游规划 (25 分)
  5. 数据库5 索引 动态哈希(Dynamic Hashing)
  6. 遍历循环的高级用法(好简单...)
  7. 【转】使用AIDL实现进程间的通信之复杂类型传递
  8. 使用appendChild巧妙解决火狐下innerHTML无法沿用input数据问题
  9. SWAT模型 建模方法、实例应用、高级进阶
  10. U盘插入电脑识别不出来,怎么解决?
  11. 一种通用的Qt数据库接口操作方法
  12. 司普沃浅谈蓝莓种植技术与管理
  13. 【环境配置】ceres solver安装
  14. 计算机编程玫瑰花,c语言实现玫瑰花的方法
  15. Java之父詹姆斯·高斯林 (James Gosling)学鸿蒙(HarmonyOS),HarmonyOS(鸿蒙)——Image组件详述
  16. 【mysql】字符集与比较规则
  17. 团队作业6--展示博客
  18. Python的前景和意义
  19. unicode、utf-8、ansi、gbk、gb2312编码详解
  20. 智能手机发布会上云,是“迫不得已”还是“刻不容缓”?

热门文章

  1. 一分钟带你玩转 Spring IoC
  2. Java 必知必会的 20 种常用类库和 API
  3. 蓝桥杯-递归求二项式系数值(java)
  4. php分开每个字,PHP,分解每个句子之间有特殊字符的文本文件
  5. matplotlib 横坐标只显示整数_matplotlib初学:这样画折线图和添加标注、箭头
  6. LeetCode 73矩阵置零74搜素二维矩阵75颜色分类
  7. 根据dtd编写xml的小例子
  8. C++模板:类模板和类模板的友元【C++模板】(57)
  9. 绵阳python培训_《绵》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
  10. autorunner测试java代码,AutoRunner自动化测试工具介绍