深度学习涉足美妆领域,网红博主要失业?

https://mp.weixin.qq.com/s/sRwjpW8cYxd2lw2yZD-Mtwhtml

By 超神经

场景描述:风靡各大直播平台的美妆博主,凭借高超的化妆技术吸金无数。而人工智能也已经开始学习这一本领。利用深度学习与计算机视觉技术,仅仅根据人的眼睛特征,就能给出适合用户的美妆搭配。

关键词:几何变换 triplet 损失函数 迁移学习

近年来,网络上涌现出愈来愈多的美妆博主,他们讲解美妆技巧,分享化妆品试用效果,以此积累粉丝,与商家合做销售产品。网络

好比,前段时间大火的李佳琦,被称为「口红魔鬼」的美妆博主。他曾疯狂地在一次直播中一口气试了 380 种口红色号,并创下一分钟内售出 14,000 支口红的纪录。
深度学习涉足美妆领域,网红博主要失业?架构

然而,不少爱化妆的妹子应该早有领悟,明明买了和博主如出一辙的口红,可画出来效果却不同。看到「李佳琦」们试用的色号很美很仙很贵气,可到了本身嘴上怎么就……机器学习

深度学习涉足美妆领域,网红博主要失业?
口红界的「卖家秀」和「买家秀」ide

没错,正是由于每一个人的脸型、肤色、唇形等等都不同,才致使了「卖家秀」和「买家秀」的结果。函数

那么问题来了,怎样才能知道最适合本身的美妆产品是哪款呢?一个叫作 Mira 的公司给出的答案是:用深度学习。学习

深度学习也爱漂亮妆

许多人印象中,人工智能、深度学习这些名词和美妆应该八竿子打不着关系,但位于美国洛杉矶的创企 Mira 可不这么想。优化

这家公司决定用人工智能技术帮助广大爱漂亮女士,好比获取化妆灵感,购买合适的美妆产品等。人工智能

深度学习涉足美妆领域,网红博主要失业?
美妆先后,效果堪比换脸.net

在随机和数十位美妆人士详聊后,Mira 团队了解到,目前女性消费者在寻找合适的化妆产品和美妆方法时,遇到的最大困难是,没有权威且可信的声音能针对她们我的的美容需求作出指导。

在本文咱们就聊聊 Mira 的技术团队如何用深度学习和计算机视觉技术发现切中这个问题要害的实例:找到讲解人类具体眼型和面部肤色的美妆大咖、图片和视频等信息。

沿着这种方式, Mira 团队借助三个简单但强大的知识——几何变换、triplet 损失函数和迁移学习,只用最小限度的人类输入数据就能解决种种困难的美妆推断问题。

AI 帮你选择最合适的眼妆

深度学习涉足美妆领域,网红博主要失业?
眼部分类示意图

爱化妆的女士都知道,找到适合本身眼睛的美妆产品和方法是很困难的——每一个人的眼型和面部肤色都不同。

即使是同一种眼妆(好比烟熏妆),根据眼型不一样,所用的化妆方法也大不相同。

虽然像 Birchbox 等推出了一些有用的化妆指南,但 Mira 团队通过调查发现,美妆爱好者们一般仍是喜欢听听专业且可信的建议,尤为是和本身眼型类似的人的化妆建议,她们对这些建议的重视程度甚至都超过了美容专家的意见。

深度学习涉足美妆领域,网红博主要失业?

利用人工智能技术,如今咱们根据本身的眼部特征,以及本身其它独特的面部特征,就能让本身知道怎么化妆、买什么化妆品。

AI 美妆第一步:寻找类似性

咱们把问题形式化一下:根据一组面部照片,以及少量数量的人工标记的照片(标记了眼睛颜色、眼睑形状等),找到两个眼睛之间的视觉类似性度量(《红楼梦》中「这个妹妹我曾见过的」就是这个意思)。而后用分类器捕捉人工标记的属性。

本文先重点讲解如何肯定眼睛之间的类似度,后面会详细解释如何进行分类任务。

深度学习涉足美妆领域,网红博主要失业?

原始图像并非很适合计算视觉类似性或者进行分类任务。由于它们包含的不少类似性都是表面上的(好比画的妆很类似,因为强光才形成肤色看起来不一样)。

而这些和人物真正的眼部结构及面部肤色并无关系。并且,原始图像通常都处于高维空间,这就须要大量的有标记训练数据用于分类任务。

深度学习涉足美妆领域,网红博主要失业?

如上图,若是仅直接比较图像像素,人物的眼睛都高度类似,但仔细注意会发现,虽然人物的眼影、光线和视线方向一致,但她们的眼睛颜色和面部肤色却各不相同。

深度学习涉足美妆领域,网红博主要失业?
处理原始图像的困难所在:虽然上图两人的眼睛大不相同,但初始数据比较起来却很类似

那么 Mira 的首要任务就是:要得到眼部照片的低维和密集的数学表达形式,也就是咱们所说的「嵌套」(embeddings)。

它只会捕捉任务所需的图像品质(嵌套是一种分类特征,以连续值特征表示。一般,嵌套是指将高维度向量映射到低维度的空间。)这样一来,「嵌套」应当忽略这些信息:

  • 眼睛姿式/视线方向
  • 具体的光线情况(固然还有强大的滤镜这些)
  • 不论是脸部画了什么样的妆

深度学习涉足美妆领域,网红博主要失业?
当用三重函数训练眼睛嵌入时,系统学会了忽略不相关特征

AI 美妆第二步:投影变换进行图像归一化

咱们能够经过一个简单的预处理步骤——投影变化删除一整个类别的表面类似性。

虽然裁减过的眼部照片会出现不少明显的结构性差别(好比眼睛不在照片中心,或者因为头部倾斜的缘由出现旋转等),但投影变化能让咱们「扭曲」照片,这样就能保证相同的眼部标志处于相同的坐标。

借助一丁点的线性代数原理,咱们就能够将一张图像「扭曲」,这样一组点会映射为一个新的理想的形状。旋转和拉伸图像的过程以下所示:

深度学习涉足美妆领域,网红博主要失业?

使用投影变化,能够将上面的图像进行扭曲处理,上图中的 4 个红点会组成一个矩形,从而将红点围住的文本「拉直」。Mira 团队在将眼部照片进行正常化处理时,应用了一样的方法。

研究人员接用 dlib 检测出脸部标记(若是你对 dlib 感兴趣,能够在如下连接中了解:http://blog.dlib.net/2014/08/real-time-face-pose-estimation.html)。

剪裁照片中的眼部部位,将其「扭曲」处理,确保它们对齐和一致。这步操做能让他们专一于让「嵌套」不受人物头部姿式和倾斜角度的影响。

深度学习涉足美妆领域,网红博主要失业?

接着进行图像归一化:检测出面部标志,剪裁眼部图像,而后用投影转换将眼部图像「扭曲」至标准位置。

深度学习涉足美妆领域,网红博主要失业?
图像预处理流程中的图像样本

AI 美妆第三步:用 triplet 损失函数进行表示学习

「扭曲」处理后的图像进行直接比较时,仍会表现出一些表面类似性,包括视线方向和类似的化妆等。深度学习技术就是解决这个问题的药方。

研究人员训练了一个卷积神经网络,用眼部照片输入它后会输出向量,相比不一样人之间,同一我的眼部照片输出的向量更具类似性。神经网络会学习输出每一个人眼在不一样环境下的稳定持续的表示形式。

固然,这里因此靠的正是前面所说的 triplet 损失函数,其公式以下所示:
深度学习涉足美妆领域,网红博主要失业?

这详细说明了当函数将具体个体(锚点和正样本)的两个「嵌套」放置的位置比锚点和无关个体(负样本)的位置更近时,模型的损失和优化目标会递减。

深度学习涉足美妆领域,网红博主要失业?
模型架构示意图

当研究人员将眼部照片应用到模型中时,他们发现生成的「嵌套」很好地指出了具备类似眼部结构和面部肤色的两张照片。

深度学习涉足美妆领域,网红博主要失业?
眼部嵌套类似的照片示例

这里所用的方法其实和谷歌的 FaceNet 很像,也就是经过对照片进行「扭曲」和一致性处理,应用 triplet 损失函数,生成脸部级别的图像嵌套。

AI 美妆第四步:合并嵌套

研究人员对生成的嵌套进行了简单调试,让其一样适用于支持人级(Person-level)的眼部表示——提取出每一个帧的所有噪声数据。

经过使用上面神经网络的预训练权重,研究人员又采用了新的损失函数,该函数将多组嵌套的平均值放在极为相近的位置(相对于无关个体),以下所示:

深度学习涉足美妆领域,网红博主要失业?

使用先前神经网络的预训练权重,研究人员可让网络可以以求平均值的方式将眼部嵌套合并在一块儿,能看到模型快速收敛。这个过程就是常说的迁移学习。

迁移学习让嵌套可以合并为一个个体眼睛的更为总体的表示。虽然此时神经网络架构很是复杂了,但模型因为采用了迁移学习的缘由可以快速收敛。

最终,研究人员用数据集对模型进行了验证,发现模型生成的嵌套可以捕捉个体之间的很细微的类似性,以下所示:

深度学习涉足美妆领域,网红博主要失业?
每一行人物的眼部嵌套之间很是类似

看你一眼,就给出完美妆容建议

经过得到单张照片中人眼的高质量数学表示,研究人员就能找出人物眼睛构造的类似性,这就为只根据人的眼睛,为他/她匹配合适的眼妆风格打下了基础。

Mira 技术团队表示接下来的任务是应用几种监督式学习方法(分类眼型、回归眼睛颜色等),以及一些分析方法,搭建出能为人们提供化妆建议的 AI 模型。

也就是说,将来,妹子们没必要再发愁画什么样的妆最适合本身的眼睛和肤色了,更没必要机械地参考标准化妆指南和美妆博主试色效果,AI 会为你推荐更适合你本身的美妆术。

如此一来,美妆博主们恐怕要被抢饭碗了?不过,李佳琦也不用再那么辛苦地,在一次直播中试色 380 次了。

注:本文全部代码和结果的实现用到了 NumPy,SciPy,Matplotlib,Chainer,dlib 和 SqueezeNet 架构。

超神经百科

迁移学习

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型做为初始点,从新使用在为任务 B 开发模型的过程当中。

深度学习中,在计算机视觉任务和天然语言处理任务中,将预训练的模型做为新模型的起点是一种经常使用的方法,一般这些预训练的模型在开发神经网络的时候已经消耗了巨大的时间资源和计算资源,迁移学习能够将已习得的强大技能迁移到相关的的问题上。

如下是两个经常使用的方法:

  1. 开发模型的方法
  2. 预训练模型的方法
    深度学习涉足美妆领域,网红博主要失业?