|AI不止能美颜,美妆迁移这样做 | 赠书( 二 )


对于眼睛和睫毛部分 , 可以使用更加复杂的变换 , 睫毛和眉毛的浓妆效果需要更精细的处理 , 包括毛发的长度、颜色和密度 。
该方法有几个重大的局限性:
(1) 要求肤色相近 , 背景单一 , 这限制了应用场景 。
(2) 无法适应比较大的几何变换 。
(3) 需要成对的妆造对比图进行训练 , 获取这样的数据需要很高的成本 。
2.2 基于物理模型和非成对数据的算法
成对的妆造对比图获取代价高昂 , 《Digital Face Makeup by Example》方法则提出了人脸分层模型 , 不需成对的样本图 , 只需要输入两张图片 , 一张是目标图片I , 一张是参考的样例化妆图片ε , 其流程如下图 。
|AI不止能美颜,美妆迁移这样做 | 赠书
本文插图

该方法主要分为四步 。
第一步:将I和ε进行人脸对齐 。 因为我们是在像素点级别进行迁移 , 所以人脸的对齐是很有必要的 。 文中人脸对齐采用了薄板样条函数(Thin Plate Spline , 简称TPS) ,这是一种在图像配准中很常见的插值方法 。 文中使用了ASM算法来定位关键点 , 为了提高准确性还进行了人工调整 , 并增加了十个额头控制点 , 最终得到了83个关键点 。
第二步:对I和ε分别进行分解 。 文中将图片转换到CIELAB颜色空间 , 然后对图像进行了分层建模 。 L层被认为是光照层(lightness layer) , 可以被分解为粗粒度脸部结构层(Face Structure)和细粒度皮肤细节层(Skin Detail) , 具体的实现其实就是将lightness layer执行一个边缘保持的滤波操作(edge-preserving smoothing)得到large-scale layer , 然后将lightness layer减去large-scale layer得到detail layer 。 剩下的两个通道a*和b*则被认为是颜色层 。
第三步:将分解后的图像进行不同的处理 , 两幅皮肤细节层(Skin Detail)直接相加 , 颜色层使用一个alpha blending进行融合 , 对人脸结构中的高光和阴影部分则使用梯度进行迁移 。
第四步:将得到的三部分组合到一起 。 注意到嘴唇化妆和脸部是很不一样的 。 在物理化妆中 , 嘴唇上的化妆品(如口红)通常会保留或突出嘴唇的质感 , 而不是像在面部皮肤上那样隐藏 , 处理方法是对原始图I中的每一个像素 , 从妆造图中搜索匹配的像素进行替换 , 此时会同时用到L通道的像素值和空间位置信息 。
该方法原理清晰 , 不需要使用成对的数据 , 且不需要进行训练 , 但是需要输入图和妆造图进行精确的对齐 , 这限制了该类方法的实用性 。 实际上 , 传统的妆造迁移算法都无法避免这样的问题 , 它们对输入图的姿态以及光照非常敏感 。
[1] Tong W S, Tang C K, Brown M S, et al. Example-based cosmetic transfer[C]//15th Pacific Conference on Computer Graphics and Applications (PG'07). IEEE, 2007: 211-218.
[2] Guo D, Sim T. Digital face makeup by example[C]//2009 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2009: 73-79.
|AI不止能美颜,美妆迁移这样做 | 赠书
本文插图

深度学习妆造迁移算法
深度学习算法利用深度学习技术来自动完成妆造迁移 , 框架流程都更加简单 , 是当前主流的研究思路 , 目前主要包括基于数据库匹配的算法和基于GAN等生成式模型的算法 。
3.1 基于匹配的妆造算法
论文《Makeup like a superstar: Deep localized makeup transfer network》主要是对人像进行五官分析 , 获取肤色 , 眉毛颜色 , 唇色等信息后 , 进行不同妆容的最佳匹配推荐 , 最后上妆 , 其算法的完整流程如下图:
|AI不止能美颜,美妆迁移这样做 | 赠书


推荐阅读