背景
近年来,以AI技术和端侧渲染技术为加持的AR虚拟试妆,迅速成长为线上美妆购物的一种全新体验模式,并受到越来越多的消费者好评。AR虚拟试妆技术使得用户可以在足不出户的情况下体验美妆产品的上妆效果,体验到跟实体店一致甚至更加便捷的试妆效果。同时,随着AR试妆业务的兴起,用户的需求也逐渐多样化。一方面,用户希望尽可能多的线上美妆商品能够支持虚拟试妆的效果,从而能够尝试更多的妆效组合,进行更充分地购买决策。另一方面,用户不仅仅希望利用AR体验平台提供的部分妆容,同时也希望体验多种渠道的相似妆容,例如,用户在别的渠道看到一款达人使用的口红,希望找到相似色号的口红商品并能够体验该口红的实际上妆效果。对于第一种情况,要求平台不断提升AR虚拟试妆的商品覆盖率,加速AR虚拟试妆的规模化,从而可以尽可能地容许消费者体验平台上的所有美妆商品。对于第二种情况,则需要平台不仅具备在库商品的试妆功能,同时也要具备解析用户自定义妆容的能力,从而在平台商品中为用户匹配相似妆容的商品。
为了支撑更广泛的用户需求,2021年,我们基于妆容解析技术推出了面向商家的虚拟试妆自动配色服务,能够大幅度地提升商家AR素材生产的效率,从而能够加快AR美妆的规模化覆盖,为消费者提供更加完善的AR虚拟试妆体验。基于妆容解析技术我们推出了口红搜,用户可以通过上传图像的方式精确搜索淘宝同色号口红,实现口红商品的精准召回。本文将简要介绍我们的妆容解析技术,主要分为三个部分,一是妆容解析技术具体分析及面临的技术挑战,二是我们的技术方案,第三部分是具体的应用场景及未来在AR虚拟试妆方面的演进方向。
问题分析及挑战
问题分析
快速提升AR试妆的商品覆盖率
素材的质量及生产效率是决定AR商品覆盖的前提。以口红类目为例,商家需要针对一款口红的每个色号配置对应的渲染参数,而同一商品往往包含大量的色号,同时,配置参数需要不断调整调优,才能保证渲染效果跟商品的实物效果一致。因此,降低美妆素材生产的成本,提升配置效率,同时保证配置的质量是AR虚拟试妆的核心环节,同时也是扩大美妆AR覆盖和提升消费者体验的重要前提。要实现美妆商品的自动配色,则需要研发一种基于商品图像自动提取妆容参数的能力,从而能够实现批量的AR商品配置,快速提升AR商品的覆盖率。
-
妆容解析及妆容检索
对于用户上传的妆容图像,平台需要具备基于带妆图像解析妆容参数的能力,从而能够与在库商品的妆容进行匹配,能够为用户召回相似的商品。对于用户上传的带妆图像,要实现手淘美妆商品的同色号、同材质精确检索,一个重要的前提是需要将用户上传的妆容图像和手淘美妆商品的商品图像对应的妆容特征统一映射到一个空间中。
基于以上两种需求,我们设计并实现了妆容解析系统,能够基于上妆图像实现妆容参数的自动解析,从而能够实现美妆AR的自动配色。同时,基于妆容解析系统,我们能够实现用户上传妆容图像与在库美妆商品的精准匹配,从而能够为用户推荐相似妆容的美妆商品。
▐ 妆容解析技术挑战
商品图像比较复杂,同时经过了很多后期的处理
通过商品图进行美妆渲染参数的自动解析是一项极具挑战性的工作,主要体现在以下几点:
-
美妆产品之间色差小,需要做到精确解析
例如,同一款口红中,不同色号间的色差一般很小,因此需要在试妆时准确的体现出每个色号具体的颜色和材质,同时要体现出不同色号之间的差别。因此,模型需要保持解析参数的精准度。
-
美妆参数对外部环境比较敏感,包含光照、图像分辨率等等
图像的外部环境因素会对最终色号造成很大的影响,特别是光照、分辨率等等。不同商品其拍摄环境相对比较*,因此外部环境的差异往往会比较大。因此,模型需要对不同光照和其它外部环境的变化具有很好的鲁棒性。
-
模特本身信息,如肤色、唇色、发色等对最终上色效果影响较大。
对于同款色号来说,不同的模特上妆后会有不同的表现,例如唇色本身对口红上妆后的颜色具有决定性的影响,因此模型需要能够处理美妆这种“千人千色”的特点。
技术框架
在淘系的商品中,不同的商品图可能包含不同层面的信息,对于口红类目的商品图,其一般包含三种不同类型的信息,可以通过综合利用三种信息提升参数解析的准确性。
-
模特图,即包含模特试色的结果;模特试色图是消费者线上购物进行比较和决策的首要信息,其包含了口红的实际上妆效果,因此模特试色图是我们进行妆容参数解析的主要信息来源。
-
带有口红膏体或口红色块的图像;部分商品会带有表示色号的色块图像,用来向消费者展示口红的整体颜色,但需要注意的是,色块的颜色只表示口红本身的颜色,口红本身膏体的颜色与实际试妆的颜色会有一定差别。
-
文本信息,商品图中通常会包含比较宽泛的色系和材质相关的描述信息;该信息可以作为一定的参考,综合提升妆容解析参数的精准度。
为了综合利用三种不同的信息,我们的妆容解析系统对于不同的信息来源采用了不同的解析技术。其中,
-
模特试色图包含了最直接同时也是相对最准确的色号参数信息,为了从试妆模特图中解析出准确的妆容参数,我们提出了一个基于CNN的妆容解析模型(后文简称Attribute-Net)来进行妆容参数的解析。
-
对于色块信息或膏体信息,我们通过训练的检测模型(YOLO)定位到色块信息,然后基于图像处理的方法进行色号的提取。
-
文本信息:我们通过一个OCR模型来进行商品文本图的识别和解析,筛选出色号及材质相关的信息。
对于后两种信息,我们可以利用色块图及文本信息得到相应的颜色和材质信息作为商家配色的初始配置,但这种配置方法并不能完全准确的得到妆容参数,特别是对于一些特殊妆效的商品并不能完全提取出对应的妆容参数。因此,要得到准确且完整的妆容参数,需要基于模特试色图,利用Attribute-Net来解析对应的渲染参数。下面我们将简要的介绍在Attribute-Net中我们使用的两种方案。
▐ 方案1 :基于参数回归的妆容解析框架
在第一种方案中,我们直接直接使用一个基于CNN的回归框架来实现渲染参数的回归。其中
-
参数编码:为了保证更加稳定的训练结果,我们对渲染参数进行了编码,其中针对颜色相关的参数,在Lab颜色空间进行了基于直方图的量化编码;针对材质等离散属性,进行了one-hot编码。
-
网络结构:针对渲染参数不同的特点,我们利用不同的网络分支进行不同参数的回归。特别地,对于色彩相关的参数信息,我们主要在浅层网络中进行相关参数的回归。对于材质等离散属性,更多地依赖于语义信息,我们利用网络的深层特征进行分类。
-
损失函数:对于颜色等连续参数的回归,我们利用MSE进行每个颜色分量的损失度量,同时我们利用修改后的CIEDE距离作为颜色差异的整体度量。同时,在模型训练时加入Weight Normalization 及 weighted CE解决相似类别分类及类别不平衡问题。
-
训练数据:我们首先利用渲染引擎生成的数据进行模型的预训练,训练完毕后freeze部分网络层,采用一种渐进式的数据标注方法进行线上数据的过滤和标注,逐步增加训练样本,进行网络的微调。
通过针对性的网络设计,我们训练的模型能够很好地进行相关参数的解析,从而能够自动地利用商品图进行渲染参数的配置。但在实际的应用及对测试集的分析发现,当前的模型还存在一些问题。其中一个突出的问题是部分样本其整体的loss比较小,但最终配置参数渲染的效果离真实效果相差较大。在下节我们将分析产生这种问题的原因及相关的改进方案。
▐ 方案2:基于可微渲染模型的妆容解析框架
如上节所述,部分样本其整体的loss相对比较小,但最终的渲染效果却差异比较明显。其根本原因还是渲染结果是由多个参数共同决定的,我们的最终目标是需要解析得到的参数渲染得到的图像与真实图像足够接近,单独去度量每个参数的损失并不能完全等价的表达渲染结果的误差。因此,如果我们能直接度量渲染结果与真实图像之间的误差,参数的解析准确率将得到进一步提升。但渲染引擎本身不可微,因此无法直接加入网络进行训练。要实现直接度量渲染图像与真实图像的误差,我们需要一个可微分的渲染引擎。
基于以上分析,我们设计并训练了一个妆容渲染模型(MakeupRender)来直接模拟渲染引擎的渲染效果,从而可以基于渲染参数直接度量渲染图像与真实图像的误差,从而更好地训练妆容解析网络。妆容渲染模型以带渲染图像和渲染参数作为网络的输入,经过一个Encoder-Decoder结构,最终输出渲染后的妆容图像。待妆容渲染模训练完毕后,我们将该网络的参数固定,加入到妆容解析模型中进行训练,针对妆容解析模型解析的参数,利用可微渲染模型进行渲染,与真实图像进行MSE计算作为渲染的loss,最终实现网络参数的更新。下面我们简要介绍一下MakeupRender的基本结构。
-
网络整体结构:为了实现模拟渲染引擎的效果,我们以渲染参数和待渲染图像作为输入,经过一个Encoder-Decoder结构的映射网络,输出最终的渲染图像。
-
参数映射:与StyleGAN类似,我们对输入的参数利用一个映射网络对渲染参数映射到隐空间中,最终和待渲染图像一起输入到网络中。
-
损失函数:我们利用 L1 loss来度量生成图像和渲染引擎渲染图像之间的误差,同时我们加入了Perceptual Loss和adversarial loss来进行网络的优化。
通过方案2的优化,妆容解析的准确率相比方案一有了明显的提升,核心原因还是方案二引入了妆容渲染模型,能够更好地度量渲染图像与真实图像的差异,从而得到更精确的参数。
业务应用
有了妆容解析模型,我们可以进行很多场景的应用,目前比较典型的应用有以下几个场景:
▐ AR美妆参数配置
通过妆容解析模型,在AR虚拟试妆场景,我们可以基于商品图自动进行渲染参数的解析,从而实现美妆AR参数的批量自动化配置,极大地降低了商家配置的工作量,同时提升了配置的准确度。通过线上数据的测试,我们的系统能够达到80%以上的配置准确率。对于自动配置不是完全正确的商品,通过以自动配置参数为基础配置进行调整,也能够很好地提升配置效率,减少人工调整的次数。目前,我们已经在口红、染发等类目提供了自动配置的服务,帮助商家更快更好地进行美妆AR参数的配置。(上图每一组结果中左侧图像为商品图,右侧图像为我们解析的参数渲染得到的上妆图)
▐ 口红搜
传统的商品搜索大多基于商品粒度(Item),但对于美妆类商品,以口红为例,用户希望实现同色号口红的搜索,例如明星或达人同款口红。要实现这种同色号口红的召回,则必须构建基于SKU粒度的精细化召回。目前部分平台提供了基于色系或材质的过滤和筛选,但色系及材质属性一般来源于商品本身的附加信息,其信息一般来自于商品附加信息,其准确性一般较低。此外,不同商家对于色号及色系的定义并不完全一致,因此,基于商品标签的信息难以进行精确的检索。
基于妆容解析系统,我们可以实现美妆商品的精细化检索。对于库中的所有的口红商品,我们利用妆容解析系统进行其妆容参数的解析,从而将所有商家的商品统一到同一空间中,因此可以利用该空间中的特征及相关参数进行准确的同色号商品召回。
总结及展望
我们将持续优化和打磨AR虚拟试妆技术,不断提升用户体验,优化色彩及材质还原效果,为消费者提供更加真实的试妆效果。基于妆容解析系统中积累的可微渲染模型,我们将积极探索基于可微渲染的美妆渲染技术,提升妆容渲染的贴合感和真实感。同时,基于3D的美妆渲染技术也是一个可以提升渲染效果的技术方向,特别是对于高光、材质的处理有着独特的优势。
在应用层面,基于当前的妆容解析技术,我们可以结合用户妆容分析其妆容偏好,结合人脸属性特征和商品流行趋势,为用户提供基于妆容解析技术的AI妆容搭配间,为用户提供个性化的妆容搭配和美妆商品推荐服务。