上篇文章中,小编向大家介绍了美颜sdk中,其中一项传统妆造迁移算法的实现过程,接下来向大家介绍剩余的内容。
基于物理模型和非成对数据的妆造迁移算法
从上一篇文章中可以看出,成对的妆造对比图获取代价高昂,于是后来出现了人脸分层模型,不需要成对的样本图,只需要输入两张图片,一张是目标图片A,一张是参考的样例化妆图片B。
第一步:将A和B进行人脸对齐。因为是在像素点级别进行迁移,所以人脸的对齐是很有必要的。人脸对齐一般采用薄板样条函数,这是一种在图像配准中很常见的插值方法,文中使用了ASM算法来定位关键点,为了提高准确性,还进行了人工调整,并增加了十个额头控制点,最终得到了83个关键点。
第二步:对A和B分别进行分解,将图片转换到CLELAB颜色空间,然后对图像进行分层建模。
第三步:将分解后的图像进行不同程度的处理,两幅皮肤细节层直接相加,颜色层进一步处理融合,对人脸结构中的高光和阴影部分则使用梯度进行迁移。
第四部:将得到的三部分组合到一起。注意到嘴唇化妆和脸部是很不一样的。在物理化妆中,嘴唇上的化妆品(如口红)通常会保留或突出嘴唇的质感,而不是像在面部皮肤上那样隐藏,处理方法是对原始图A中的每一个像素,从妆造图中搜索匹配的像素进行替换,此时会同时用到L通道的像素值和空间位置信息。
该方法原理清晰,不需要使用成对的数据,且不需要进行训练,但是需要输入图和妆造图进行精确的对齐,这限制了该类方法的实用性。实际上,传统的妆造迁移算法都无法避免这样的问题,它们对输入图的姿态以及光照非常敏感。
因此,有人工智能技术加载的,深度学习妆造迁移算法便逐渐应用于后来的美颜sdk中,深度学习算法利用深度学习技术来自动完成妆造迁移,框架流程都更加简单,是当点主流的研究思路,关于它的介绍,小编在下篇文章中再详细阐述。如果你对美颜sdk接入有需求,欢迎咨询官方客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。