本平台为商业科创服务平台 非政府政务服务网站

虚拟试妆方法、装置、电子设备及可读存储介质

更新时间:2026-10-26
虚拟试妆方法、装置、电子设备及可读存储介质 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:虚拟试妆方法、装置、电子设备及可读存储介质

专利类型:实用新型专利

专利申请号:CN202010509918.4

专利申请(专利权)人:北京旷视科技有限公司
权利人地址:北京市海淀区中关村大街1号10层1018室

专利发明(设计)人:孙宇超,姚聪,胡波

专利摘要:本申请提供一种虚拟试妆方法、装置、电子设备及可读存储介质,涉及图像处理技术领域。该方法包括:获取针对试妆用户的面部三维模型;确定面部三维模型中试妆区域的光照信息;获取试妆区域对应的试妆产品的材质光学反射参数信息;基于光照信息以及对应的材质光学反射参数信息,生成试妆区域的三维纹理贴图;将试妆区域的三维纹理贴图叠加到面部三维模型中对应的试妆区域,获得三维试妆效果图;将三维试妆效果图转换为二维试妆效果图输出。该方案通过在试妆过程中加入光照信息和试妆产品的材质光学反射参数信息,以模拟真实光照环境下的上妆效果,从而可使得虚拟试妆效果与真实试妆效果差异不大,提高了虚拟试妆效果的真实性。

主权利要求:虚拟试妆方法、装置、电子设备及可读存储介质
技术领域
[0001] 本申请涉及图像处理技术领域,具体而言,涉及一种虚拟试妆方法、装置、电子设备及可读存储介质。
背景技术
[0002] 随着美妆电商网络的崛起和人们对美妆产品越来越大的需求,美妆市场成为了一个持续增长的市场。但是人们在线上购买美妆产品的时候无法试戴美妆产品的效果。
[0003] 所以,为了满足用户的购物需求,虚拟化妆技术开始发展起来。然而传统的虚拟美妆方案,是在原本待上妆区域贴上一个特定效果的贴图,但是这个贴图是预先设计好的,不能真实反映实际场景下的上妆效果,从而使得虚拟试妆效果与真实试妆效果差异较大,降低了虚拟试妆效果的真实性。
发明内容
[0004] 本申请实施例的目的在于提供一种虚拟试妆方法、装置、电子设备及可读存储介质,用以改善现有技术中虚拟试妆效果真实性较低的问题。
[0005] 第一方面,本申请实施例提供了一种虚拟试妆方法,所述方法包括:
[0006] 获取针对试妆用户的面部三维模型;
[0007] 确定所述面部三维模型中试妆区域的光照信息;
[0008] 获取所述试妆区域对应的试妆产品的材质光学反射参数信息;
[0009] 基于所述试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成所述试妆区域的三维纹理贴图;
[0010] 将所述试妆区域的三维纹理贴图叠加到所述面部三维模型中对应的试妆区域,获得三维试妆效果图;
[0011] 将所述三维试妆效果图转换为二维试妆效果图输出。
[0012] 在上述实现过程中,在试妆过程中加入光照信息和试妆产品的材质光学反射参数信息,以模拟真实光照环境下的上妆效果,从而可使得虚拟试妆效果与真实试妆效果差异不大,提高了虚拟试妆效果的真实性。并且,本申请中是在面部三维模型中进行虚拟试妆,相比于二维试妆的方案,本方案中用户的面部三维模型能够还原用户的实际面部的姿态,从而更加准确选取试妆区域,尤其对于遮挡、侧脸等情况,具有更强大的鲁棒性。
[0013] 可选地,所述光照信息包括环境光照信息、漫反射光照信息和/或镜面反射光照信息,所述确定所述面部三维模型中试妆区域的光照信息,包括:
[0014] 获取所述面部三维模型中试妆区域的每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息。
[0015] 在上述实现过程中,通过获取每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息可更加准确模拟出真实的光照场景,提高了虚拟试妆的真实性。
[0016] 可选地,所述获取所述面部三维模型中试妆区域的每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息,包括:
[0017] 通过Phong光照模型、Lambert光照模型或BlinnPhong光照模型,获取所述面部三维模型中试妆区域的每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息。
[0018] 在上述实现过程中,通过Phong光照模型、Lambert光照模型或BlinnPhong光照模型获得的光照信息能更加准确反映真实场景下的光照信息。
[0019] 可选地,所述试妆产品的材质光学反射参数信息包括镜面反射系数和/或漫反射系数,所述基于所述试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成所述试妆区域的三维纹理贴图,包括:
[0020] 将所述面部三维模型中所述试妆区域的每个像素点的光照信息与所述材质光学反射参数信息以及所述试妆产品的颜色RGB值进行融合,获得所述试妆区域中每个像素点的像素颜色;
[0021] 基于所述试妆区域中每个像素点的像素颜色,生成所述试妆区域的三维纹理贴图。
[0022] 在上述实现过程中,通过将像素点的光照信息和化妆品的材质光学反射参数信息进行融合,可更加准确模拟出化妆品在真实光照场景下的上妆效果。
[0023] 可选地,所述生成所述试妆区域的三维纹理贴图,包括:
[0024] 基于所述试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成所述试妆区域的初始三维纹理贴图;
[0025] 将所述初始三维纹理贴图中所述试妆区域中每个像素点的像素颜色与初始获取的所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色进行融合,获得所述试妆区域中每个像素点的融合颜色;
[0026] 基于所述试妆区域中每个像素点的融合颜色,生成所述试妆区域的三维纹理贴图。
[0027] 在上述实现过程中,通过将初始面部图像中像素点的像素颜色与初始三维纹理贴图中的像素点的像素颜色进行融合,从而可更好地保留原始面部图像中的纹理效果,以获得更真实的试妆效果。
[0028] 可选地,通过如下公式获得所述试妆区域中每个像素点的融合颜色:
[0029]
[0030] 其中,A表示所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色,B表示所述初始三维纹理贴图中所述试妆区域中每个像素点的像素颜色,C表示所述融合颜色。
[0031] 在上述实现过程中,通过上述方式进行像素颜色融合,可以更好地提取原始面部图像中的细微纹理效果,从而获得更真实的上妆效果。
[0032] 可选地,所述生成所述试妆区域的三维纹理贴图之后,还包括:
[0033] 基于所述试妆区域的透明度系数调节所述试妆区域的三维纹理贴图的透明度,获得调节后的所述试妆区域的三维纹理贴图。
[0034] 在上述实现过程中,通过基于透明度系数对三维纹理贴图进行调节,从而可实现对上妆过程中薄涂或厚涂的上妆效果的模拟。
[0035] 可选地,通过如下公式获得调节后的所述试妆区域的三维纹理贴图:
[0036] T=k*C+(1‑k)*A;
[0037] 其中,T表示调节后的所述试妆区域的三维纹理贴图中每个像素点的像素颜色,k表示透明度系数,C表示所述融合颜色,A表示所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色。
[0038] 可选地,所述获取针对试妆用户的面部三维模型,包括:
[0039] 获取所述试妆用户的面部图像;
[0040] 提取所述面部图像中的面部特征点;
[0041] 基于所述面部特征点构建针对所述试妆用户的面部三维模型。
[0042] 在上述实现过程中,基于试妆用户的面部特征点构建试妆用户的面部三维模型,从而使得在试妆过程中,可以更好地模拟试妆用户原始的面部信息,以达到更真实的试妆效果。
[0043] 可选地,所述提取所述面部图像中的面部特征点,包括:
[0044] 通过深度学习算法识别所述面部图像中各个关键部位;
[0045] 提取各个关键部位的特征点。
[0046] 在上述实现过程中,通过深度学习算法可有效提高面部图像中各个关键部位识别的准确性。
[0047] 可选地,所述基于所述面部特征点构建针对所述试妆用户的面部三维模型,包括:
[0048] 基于各个所述面部特征点在所述面部图像中的坐标以及预先构建的三维平均脸模型中各个面部特征点的坐标,确定所述试妆用户在三维模型中的面部姿态、形状以及表情;
[0049] 根据所述面部姿态、形状以及表情,构建针对所述试妆用户的面部三维模型。
[0050] 在上述实现过程中,通过在三维模型中模拟试妆用户的面部姿态、形状以及表情,以实现更真实的试妆效果。
[0051] 第二方面,本申请实施例提供了一种虚拟试妆装置,所述装置包括:
[0052] 三维模型获取模块,用于获取针对试妆用户的面部三维模型;
[0053] 光照信息确定模块,用于确定所述面部三维模型中试妆区域的光照信息;
[0054] 试妆产品信息获取模块,用于获取所述试妆区域对应的试妆产品的材质光学反射参数信息;
[0055] 三维纹理贴图生成模块,用于基于所述试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成所述试妆区域的三维纹理贴图;
[0056] 三维试妆效果图获得模块,用于将所述试妆区域的三维纹理贴图叠加到所述面部三维模型中对应的试妆区域,获得三维试妆效果图;
[0057] 二维试妆效果图输出模块,用于将所述三维试妆效果图转换为二维试妆效果图输出。
[0058] 可选地,所述光照信息确定模块,用于获取所述面部三维模型中试妆区域的每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息。
[0059] 可选地,所述光照信息确定模块,用于通过Phong光照模型、Lambert光照模型或BlinnPhong光照模型,获取所述面部三维模型中试妆区域的每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息。
[0060] 可选地,所述试妆产品的材质光学反射参数信息包括镜面反射系数和/或漫反射系数,所述三维纹理贴图生成模块,用于将所述面部三维模型中所述试妆区域的每个像素点的光照信息与所述材质光学反射参数信息以及所述试妆产品的颜色RGB值进行融合,获得所述试妆区域中每个像素点的像素颜色;基于所述试妆区域中每个像素点的像素颜色,生成所述试妆区域的三维纹理贴图。
[0061] 可选地,所述三维纹理贴图生成模块,用于基于所述试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成所述试妆区域的初始三维纹理贴图;将所述初始三维纹理贴图中所述试妆区域中每个像素点的像素颜色与初始获取的所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色进行融合,获得所述试妆区域中每个像素点的融合颜色;基于所述试妆区域中每个像素点的融合颜色,生成所述试妆区域的三维纹理贴图。
[0062] 可选地,通过如下公式获得所述试妆区域中每个像素点的融合颜色:
[0063]
[0064] 其中,A表示所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色,B表示所述初始三维纹理贴图中所述试妆区域中每个像素点的像素颜色,C表示所述融合颜色。
[0065] 可选地,所述装置还包括:
[0066] 三维纹理贴图调节模块,用于基于所述试妆区域的透明度系数调节所述试妆区域的三维纹理贴图的透明度,获得调节后的所述试妆区域的三维纹理贴图。
[0067] 可选地,通过如下公式获得调节后的所述试妆区域的三维纹理贴图:
[0068] T=k*C+(1‑k)*A;
[0069] 其中,T表示调节后的所述试妆区域的三维纹理贴图中每个像素点的像素颜色,k表示透明度系数,C表示所述融合颜色,A表示所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色。
[0070] 可选地,所述三维模型获取模块,用于获取所述试妆用户的面部图像;提取所述面部图像中的面部特征点;基于所述面部特征点构建针对所述试妆用户的面部三维模型。
[0071] 可选地,所述三维模型获取模块,用于通过深度学习算法识别所述面部图像中各个关键部位;提取各个关键部位的特征点。
[0072] 可选地,所述三维模型获取模块,用于基于各个所述面部特征点在所述面部图像中的坐标以及预先构建的三维平均脸模型中各个面部特征点的坐标,确定所述试妆用户在三维模型中的面部姿态、形状以及表情;根据所述面部姿态、形状以及表情,构建针对所述试妆用户的面部三维模型。
[0073] 第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
[0074] 第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
[0075] 本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
[0076] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0077] 图1为本申请实施例提供的一种用于执行虚拟试妆方法的电子设备的结构示意图;
[0078] 图2为本申请实施例提供的一种虚拟试妆方法的流程图;
[0079] 图3为本申请实施例提供的一种试妆用户的面部图像中各个关键部位的特征点的示意图;
[0080] 图4为本申请实施例提供的一种试妆用户在三维模型中的面部姿态的示意图;
[0081] 图5为本申请实施例提供的一种试妆用户的面部三维模型的示意图;
[0082] 图6为本申请实施例提供的一种虚拟试妆装置的结构框图。
具体实施方式
[0083] 下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。
[0084] 本申请实施例提供一种虚拟试妆方法,通过在试妆过程中加入光照信息和试妆产品的材质光学反射参数信息,以模拟真实光照环境下的上妆效果,从而可使得虚拟试妆效果与真实试妆效果差异不大,提高了虚拟试妆效果的真实性。并且,本申请中是在面部三维模型中进行虚拟试妆,相比于二维试妆的方案,本方案中用户的面部三维模型能够还原用户的实际面部的姿态,从而更加准确选取试妆区域,尤其对于遮挡、侧脸等情况,具有更强大的鲁棒性。
[0085] 请参照图1,图1为本申请实施例提供的一种用于执行虚拟试妆方法的电子设备的结构示意图,所述电子设备可以包括:至少一个处理器110,例如CPU,至少一个通信接口120,至少一个存储器130和至少一个通信总线140。其中,通信总线140用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口120用于与其他节点设备进行信令或数据的通信。存储器130可以是高速RAM存储器,也可以是非不稳定的存储器(non‑volatilememory),例如至少一个磁盘存储器。存储器130可选的还可以是至少一个位于远离前述处理器的存储装置。存储器130中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器110执行时,电子设备执行下述图2所示方法过程,例如,存储器130可用于存储试妆产品的材质光学反射参数信息、光照信息、三维纹理贴图等数据,处理器110可用于在进行虚拟试妆时,从存储器130中读取相应的数据进行相关处理,生成相应的试妆效果图并输出。

[0086] 请参照图2,图2为本申请实施例提供的一种虚拟试妆方法的流程图,该方法包括如下步骤:
[0087] 步骤S110:获取针对试妆用户的面部三维模型。
[0088] 其中,面部三维模型是指通过采集试妆用户的面部图像来构建的三维模型,如通过在三维模型中模拟试妆用户面部真实的姿态、表情等,从而能够还原用户的实际面部的姿态,使得试妆用户在试妆过程中能更加贴近真实场景,实现更加真实的试妆效果,进而可以更加准确选取试妆区域,尤其对于遮挡、侧脸等情况,具有更强大的鲁棒性。
[0089] 步骤S120:确定所述面部三维模型中试妆区域的光照信息。
[0090] 试妆区域可以理解为是需要试妆的面部区域,如眼睛、鼻子、嘴巴、脸颊、额头、下巴、眉毛等中的至少一个区域,这些试妆区域可以是基于面部三维模型中试妆用户的面部而确定的,如可对面部三维模型中用户的面部的试妆区域特征进行检测,以检测获得试妆区域。
[0091] 其中,试妆区域的数量可以是一个或多个,其可以根据试妆用户的试妆需求而定,在进行试妆时,可以针对每个试妆区域均按照本申请提供的方法进行试妆。
[0092] 作为一种实施方式,上述在确定试妆用户的试妆区域时,可以通过神经网络模型对试妆用户的面部图像进行试妆区域的关键点检测,由于神经网络模型可以检测出大量的试妆区域的关键点,从而在试妆区域边界处的关键点所形成的边界形状即可作为试妆区域的形状。
[0093] 或者,还可以通过人脸检测技术和关键部位定位技术,得到各个关键部位(即各个试妆区域)的关键点,将各个关键部位的关键点所形成的边界形状所界定的区域作为各个关键部位对应的试妆区域。
[0094] 其中,可以基于各个关键部位的关键点和针对各个关键部位的透明度层来获得各个关键部位的边界形状。在确定边界形状时,可以对关键点进行拉伸变形,获得和关键部位的透明度层中的透明区域一致的形状,该形状即为边界形状。举例来说,对于关键部位为眉毛来说,通过人脸检测技术和关键点定位技术,得到眉毛区域的关键点,获取预设的眉毛的透明度层,眉毛的透明度层的分布可以为:眉毛边界之外完全不透明,为非透明区域,其透明度为1,眉毛中间区域完全透明,其透明度为0。眉毛区域和眉毛相邻区域之间的边缘处为模糊过度,将检测到的眉毛区域的关键点所形成的边界形状进行拉伸变形,使得眉毛的透明度层中透明区域形状和拉伸变形后的边界形状一致,从而确定出眉毛区域的边界形状,进而可获得眉毛的试妆区域。
[0095] 在确定出需试妆的试妆区域后,针对试妆区域,为了模拟试妆区域在真实光照环境下的试妆效果,还需获取试妆区域的光照信息,由于通过获取光照信息可以充分挖掘试妆用户的面部图像中的光照特征,使得该光照信息可用于模拟真实的光照环境,以模拟实际光照环境下的试妆效果。
[0096] 其中,可以通过获取面部三维模型中面部图像的每个像素点的像素信息来确定光照信息,如像素信息可以是各个像素点对应的像素值,如像素颜色值,该像素信息即可作为光照信息,从而可实现对真实光照效果的模拟。
[0097] 步骤S130:获取所述试妆区域对应的试妆产品的材质光学反射参数信息。
[0098] 其中,针对每个试妆区域对应的试妆产品不同,如嘴唇区域对应的试妆产品为口红,眉毛区域对应的试妆产品可以为眉笔、眉粉等,鼻子区域对应的试妆产品可以为高光、阴影等。
[0099] 而为了模拟试妆产品在真实光照环境下的试妆效果,还需获取试妆区域对应的试妆产品的材质光学反射参数信息。
[0100] 其中,试妆产品的材质光学反射参数信息可以用于表征试妆产品在真实光照环境下的试妆效果,如表征颜色、亮度等属性信息的材质光学反射参数信息,例如,试妆产品的颜色是由试妆产品所反射的光的波长决定的,即物体表面的材质类型决定了反射光的强弱,表面光滑较亮的材质将反射较多的入射光,而较暗的表面则吸收较多的入射光,从而基于化妆产品的材质光学反射参数信息可模拟出化妆产品在真实光照环境下的上妆效果。
[0101] 步骤S140:基于所述试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成所述试妆区域的三维纹理贴图。
[0102] 在上述获得试妆区域的光照信息和试妆产品的材质光学反射参数信息后,基于这两个信息可生成试妆区域的三维纹理贴图。三维纹理贴图可以理解为是一种渲染图像,其是针对试妆区域的试妆效果图,也即若是有多个试妆区域,针对每个试妆区域,均会生成一个三维纹理贴图。由于生成的三维纹理贴图结合了试妆区域的光照信息和试妆产品的材质光学反射参数信息,所以,使得生成三维贴图中能很好地保留试妆用户当前场景中的光照效果,从而可达到真实的试妆效果,实现试妆用户在试妆过程中的真实试妆体验。
[0103] 步骤S150:将所述试妆区域的三维纹理贴图叠加到所述面部三维模型中对应的试妆区域,获得三维试妆效果图。
[0104] 在生成三维纹理贴图后,为了实现整体的试妆效果,还需将三维纹理贴图叠加到面部三维模型中对应的试妆区域。例如,针对每个试妆区域均获得一个三维纹理贴图,则在将三维纹理贴图叠加到面部三维模型中时,是将各个试妆区域的三维纹理贴图进行叠加,如将嘴唇区域的三维纹理贴图叠加到面部三维模型中的嘴唇区域,将眉毛区域的三维纹理贴图叠加到面部三维模型中的眉毛区域。所以,按照该方式在将各个三维纹理贴图叠加到各个试妆区域后,即可获得试妆用户的三维试妆效果图。
[0105] 上述将三维纹理贴图叠加到面部三维模型中对应的试妆区域可以理解为是将三维纹理贴图直接覆盖在面部三维模型中对应的试妆区域,或者也可以理解为是将三维纹理贴图中的各个像素点与面部三维模型中对应的试妆区域的各个像素点进行融合,如像素值进行取平均,或者相加等方式进行融合,相对于直接覆盖的方式,这种方式还可以有效融合面部三维模型中像素点本身的颜色,使得上妆效果更加真实。
[0106] 步骤S160:将所述三维试妆效果图投影到二维平面输出二维试妆效果图。
[0107] 为了便于试妆用户直观感受到试妆效果,则还需将三维试妆效果图投影到二维平面,生成二维试妆效果图,然后还可以将二维试妆效果图显示在电子设备上,以供用户观看到相应的试妆效果。
[0108] 其中,将三维试妆效果图转换为二维试妆效果图时,可以采用相应的转换工具进行转换,如Meshlab等工具,在此不详细介绍其转换的过程。
[0109] 在上述实现过程中,在试妆过程中加入光照信息和试妆产品的材质光学反射参数信息,以模拟真实光照环境下的上妆效果,从而可使得虚拟试妆效果与真实试妆效果差异不大,提高了虚拟试妆效果的真实性。并且,本申请中是在面部三维模型中进行虚拟试妆,相比于二维试妆的方案,本方案中用户的面部三维模型能够还原用户的实际面部的姿态,从而更加准确选取试妆区域,尤其对于遮挡、侧脸等情况,具有更强大的鲁棒性。
[0110] 作为一种实施方式,为了模拟真实场景下的光照情况,上述的光照信息可以包括但不限于:环境光照信息、漫反射光照信息和/或镜面反射光照信息,也即光照信息可以包括环境光照信息、漫反射光照信息、镜面反射光照信息中的至少一种。
[0111] 可以理解地,在光学领域中,反射光和透射光的强弱决定了物体表面的明暗程度,而光中所含不同波长光的比例则决定了物体表面的颜色。若物体表面呈现的颜色仅由其反射光决定,反射光又包括环境反射、漫反射和镜面反射,所以,通过获取环境光照信息、漫反射光照信息和/或镜面反射光照信息即可模拟出真实场景下的光照效果。
[0112] 也即,上述实施例中确定试妆区域的光照信息时,可以是获取面部三维模型中试妆区域的每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息,从而通过获取每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息可更加准确模拟出真实的光照场景,提高了虚拟试妆的真实性。
[0113] 为了便于更加准确获得真实场景下的光照信息,可以采用数字模型来模拟物体表面的光照明物理现象,然后按照数学模型计算物体表面向视线方向辐射进入人眼中的光强度,即可获得像素所对应的物体上的可见点的颜色,这样绘制出来的图形即可具有较强的真实感,这里的数学模型可以为光照模型。
[0114] 其中,光照模型可以是Phong光照模型、Lambert光照模型或BlinnPhong光照模型,即可以通过Phong光照模型、Lambert光照模型或BlinnPhong光照模型,获取面部三维模型中试妆区域的每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息。
[0115] 下面以Phong光照模型为例简单介绍通过Phong光照模型获得每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息。
[0116] Phong光照模型可以采用如下公式来表示:
[0117] I=IiKa+IiKs*(RV)n+IiKd*(LN);
[0118] 其中,I表示每个像素点的光强度,即每个像素点的漫反射分量(即漫反射光照信息)、镜面反射分量(即镜面反射光照信息)和环境光分量(即环境光照信息)的发光强度之和;Ii表示像素点的入射光强度,Ka表示物体对环境光的反射系数,IiKa表示环境光照信息,其通常为一个常数,如1;Ks表示镜面反射系数,R表示反射光方向,V表示从顶点到视点视察n方向,n表示反射系数,则IiKs*(RV) 表示镜面反射光照信息;Kd为漫反射系数,L表示入射光方向,N表示像素点的法向量,则IiKd*(LN)表示漫反射光照信息。

[0119] 所以,通过Phong光照模型可获得每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息,从而可获得试妆区域中每个像素点的光照信息,每个像素点的光照信息即可作为试妆区域的光照信息。
[0120] 对于通过另外两个光照模型获取光照信息的具体实现过程在此不详细描述,本领域技术人员可参照现有的相关实现过程。
[0121] 在上述实现过程中,通过Phong光照模型、Lambert光照模型或BlinnPhong光照模型获得的光照信息能更加准确反映真实场景下的光照信息。
[0122] 作为一种实施方式,为了模拟试妆产品在真实光照环境下的试妆效果,试妆产品的材质光学反射参数信息可以包括镜面反射系数和/或漫反射系数。
[0123] 其中,镜面反射系数和/或漫反射系数可以是用户预先针对各个试妆产品输入的,例如,用户可以预先在电子设备中输入各个试妆产品的材质光学反射参数信息,这样试妆用户在试妆过程中,可针对试妆区域选择需要试妆的试妆产品,然后电子设备可从预先存储的数据中获取用户选择的试妆产品对应的材质光学反射参数信息。
[0124] 或者,电子设备也可预先存储有各个试妆产品的相关标识信息,如品牌、颜色等,用户在试妆时,电子设备可在显示界面为用户呈现各种试妆产品,用户可从这些试妆产品中选择所需的试妆产品,在用户选中相应的试妆产品后,电子设备可基于该试妆产品的标识获取预先存储的该试妆产品对应的材质光学反射参数信息。
[0125] 当然,在预先存储各个试妆产品的材质光学反射参数信息时,各个试妆产品的材质光学反射参数信息也可以利用上述的光照模型通过多次试验获得的最佳的参数信息,在此不详细描述其获得的过程。
[0126] 在获得试妆产品的镜面反射系数和/或漫反射系数后,生成试妆区域的三维纹理贴图的过程可以为:将面部三维模型中试妆区域的每个像素点的光照信息与所述材质光学反射参数信息以及所述试妆产品的颜色RGB值进行融合,获得试妆区域中每个像素点的像素颜色,然后基于试妆区域中每个像素点的像素颜色,生成试妆区域的三维纹理贴图。
[0127] 其中,融合的方式可以是光照信息与对应的材质光学反射参数信息相乘,获得更新后的光照信息,然后再将各种更新后的光照信息相加,获得相加结果再乘以RGB值,然后,若没有反射参数时,可以直接将光照信息相加,然后再将相加结果乘以RGB值。例如,若上述的光照信息包括环境光照信息、漫反射光照信息和镜面反射光照信息,以及试妆产品的材质光学反射参数信息包括镜面反射系数和漫反射系数时,针对嘴唇区域,嘴唇区域中每个像素点的像素颜色=(环境光照信息+漫反射光照信息*口红的漫反射系数+镜面反射光照信息*口红的镜面反射系数)*口红颜色RGB值。
[0128] 可以理解地,由于真实的光照是由环境光、漫反射光和镜面反射光所组成的,所以,获得的每个像素点的像素颜色由这三部分光照信息组合而来,在对于光照信息只包括其中一种或两种光照信息时,试妆产品的材质光学反射参数信息和其光照信息对应,如光照信息包括镜面反射光照信息时,材质光学反射参数信息包括镜面反射系数,光照信息包括漫反射光照信息时,材质光学反射参数包括漫反射系数,当然,在只有光照信息,而没有对应的反射参数时,可将对应的反射参数取默认值,如为1,在没有光照信息,而只有对应的反射参数时,也可取默认的光照信息(其默认值可以根据实际需求设置)。同理,在计算每个像素点的像素颜色时,将对应的光照信息与试妆产品对应的材质光学反射参数信息进行相乘后再加和,最后将获得的加和结果再乘以相应的颜色值,即可获得像素点的像素颜色。
[0129] 其中,虽然基于各个像素点的光照信息和试妆产品的材质光学反射参数信息可以模拟出试妆产品在真实光照场景下的试妆效果,但是试妆产品一般还有颜色,所以,为了模拟出试妆产品的真实试妆效果,在上述计算每个像素点的像素颜色时,最后将光照信息加和后还乘以相应的试妆产品的颜色RGB值,从而针对每个试妆区域均可模拟出试妆产品实际的颜色效果。
[0130] 在上述实现过程中,通过将像素点的光照信息和化妆品的材质光学反射参数信息进行融合,可更加准确模拟出化妆品在真实光照场景下的上妆效果。
[0131] 在获得试妆区域中每个像素点的像素颜色后,可由这些像素点重新组合生成试妆区域的三维纹理贴图,即三维纹理贴图为试妆区域采用试妆产品后的试妆效果图,而为了便于用户观看试妆用户整个脸部的试妆效果,则可将试妆区域的三维纹理贴图与面部三维模型中试妆用户面部的试妆区域进行叠加,如将嘴唇区域的三维纹理贴图叠加到面部三维模型中试妆用户的嘴唇区域,从而再将每个试妆区域的三维纹理贴图均叠加到面部三维模型中对应的试妆区域后,可形成试妆用户整个面部的试妆效果。
[0132] 另外,为了使得生成的三维纹理图能尽量保留试妆用户原始面部图像中的细微纹理效果,以获得更真实的上妆效果,则在获得试妆区域的三维纹理贴图的过程中,还可以先基于试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成试妆区域的初始三维纹理贴图,然后将初始三维纹理贴图中试妆区域中每个像素点的像素颜色与初始获取的试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色进行融合,获得试妆区域中每个像素点的融合颜色,再基于试妆区域中每个像素点的融合颜色,生成试妆区域的三维纹理贴图。
[0133] 可以理解地,上述生成初始三维纹理贴图的过程与上述实施例中介绍的生成三维纹理贴图的过程类似,在此不再重复描述。
[0134] 在进行像素颜色融合时,还可以先获取试妆用户的面部图像,该面部图像为二维图像,然后可以通过相应的图像处理算法提取面部图像中每个像素点的像素颜色,即每个像素点的像素颜色RGB值。在融合过程中,例如,将初始三维纹理贴图中嘴唇区域的每个像素点和面部图像中嘴唇区域的每个像素点的像素颜色相加或取平均值等方式实现像素颜色的融合。当然,在两个像素点的像素颜色融合时,这两个像素点为两个匹配的像素点,即两个像素点为同一试妆区域中处于相同位置处的像素点(即匹配的像素点),这样在生成最终的三维纹理贴图时,是将两个像素点的像素颜色融合为一个像素点的像素颜色,从而这些像素点的融合颜色即可形成最终的三维纹理贴图中各个像素点的像素颜色。
[0135] 在上述实现过程中,通过将初始面部图像中像素点的像素颜色与初始三维纹理贴图中的像素点的像素颜色进行融合,从而可更好地保留原始面部图像中的纹理效果,以获得更真实的试妆效果。
[0136] 作为一种实施方式,还可以通过如下公式获得试妆区域中每个像素点的融合颜色:
[0137]
[0138] 其中,A表示所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色,B表示所述初始三维纹理贴图中试妆区域中每个像素点的像素颜色,C表示所述融合颜色,融合后的颜色范围在0到255之间。
[0139] 在上述实现过程中,通过该方式进行像素颜色融合,可以更好地提取原始面部图像中的细微纹理效果,从而获得更真实的上妆效果。
[0140] 作为一种实施方式,为了模拟上妆的厚涂或薄涂效果,可以采用透明度系数来模拟上妆的厚涂和薄涂,即在上述获得三维纹理贴图后,还可以基于试妆区域的透明度系数调节试妆区域的三维纹理贴图的透明度,获得调节后的试妆区域的三维纹理贴图。
[0141] 例如,可以按照试妆用户的实际需求设置一个透明度系数,如试妆用户想厚涂或薄涂时,可以在电子设备中输入自己设定的透明度系数;或者电子设备可以预先存储有针对薄涂或厚涂的透明度系数,试妆用户在试妆时可直接在电子设备中选择薄涂或厚涂,这样电子设备即可调取薄涂或厚涂对应的透明度系数,然后将三维纹理贴图中各个像素点的像素颜色值乘以该透明度系数,即可改变各个像素点的像素颜色的深浅,从而可模拟薄涂或厚涂的上妆效果。
[0142] 在上述实现过程中,通过基于透明度系数对三维纹理贴图进行调节,从而可实现对上妆过程中薄涂或厚涂的上妆效果的模拟。
[0143] 或者,还可以结合原始面部图像中各个像素点的像素颜色实现对三维纹理贴图中各个像素点的像素颜色的调节,如可以通过如下公式获得调节后的试妆区域的三维纹理贴图:
[0144] T=k*C+(1‑k)*A;
[0145] 其中,T表示调节后的试妆区域的三维纹理贴图中每个像素点的像素颜色,k表示透明度系数,C表示所述融合颜色,A表示所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色。
[0146] 如此,可分别实现对三维纹理贴图中试妆区域的厚涂或薄涂的上妆效果,结合针对原始的面部图像中试妆区域的厚涂或薄涂的上妆效果,从而可更好地结合原始图像中的纹理信息,达到更真实的上妆效果。
[0147] 另外,在上述任一实施例的基础上,可以通过如下过程获取针对试妆用户的面部三维模型:获取试妆用户的面部图像,然后提取该面部图像中的面部特征点,然后基于面部特征点构建针对是指用户的面部三维模型。
[0148] 其中,可以通过摄像头获取试妆用户多张多角度的面部图像,这样在构建面部三维模型时可以有利于提高面部关键部位重建的准确性。其中,面部图像也可通过多个摄像头同时在不同角度拍摄获得,也可以是通过一个摄像头多次拍摄获得。
[0149] 为了提高面部特征点检测的准确性,可以通过深度学习算法识别面部图像中各个关键部位,然后提取各个关键部位的特征点。其中,各个关键部位包括但不限于:嘴唇、眉毛、眼睛等部位,在通过深度学习算法识别到各个关键部位后,可提取各个关键部位的特征点,其关键部位的特征点是指各个关键部位的边缘线上的特征点,如图3所示。
[0150] 其中,深度学习算法可以为卷积神经网络、递归神经网络、循环神经网络等,对于利用这些神经网络进行人脸关键部位检测和特征点提取的详细实现过程在此不详细介绍,本领域技术人员可参照现有的相关实现方式。
[0151] 在构建面部三维模型时,可以先基于各个面部特征点在面部图像中的坐标以及预先构建的三维平均脸模型中各个面部特征点的坐标,确定试妆用户在三维模型中的面部姿态、形状以及表情,然后根据面部姿态、形状以及表情,构建针对试妆用户的面部三维模型。
[0152] 由于通过深度学习算法提取的特征点为二维特征点,所以还可以采用相应的摄像机标定算法,基于这些特征点的二维坐标计算出这些二维特征点在三维模型中的三维坐标,然后利用各个特征点对应的坐标差异计算出试妆用户在三维模型中的面部姿态,如图4所示。
[0153] 其中,为了准确获得试妆用户在三维模型中的面部姿态,可以采用三维重建算法中的迭代算法来实现,其过程为:a:先设置面部的表情(参数为expression)和形状(参数shape)的数值为0,然后基于上述的各个特征点的二维坐标以及三维模型中平均脸中各个特征点的三维坐标之间的差异确定初始的面部姿态(参数为pose);b:基于初始的pose渲染平均脸,获得初始平均脸图像;c:然后获得初始平均脸图像中各个特征点对应的二维坐标;d:基于二维坐标获得各个特征点在三维模型中对应的三维坐标;e:此时有了新的三维坐标,回到步骤a,然后又基于三维坐标和二维坐标之间的差异,更新面部姿态,如此迭代一定次数,使得平均脸的面部姿态大致与用户的面部图像中的面部姿态一致即可。

[0154] 在确定面部姿态后,基于各个特征点的二维坐标和三维坐标的对应关系,则可获得相应的形状和表情,其具体实现过程类似上述面部姿态的获得过程,具体可参照现有技术中关于人脸三维重建的相关实现过程,在此不详细描述。
[0155] 这样在确定面部姿态、形状以及表情后,可对三维平均脸模型进行渲染,从而可获得试妆用户的面部三维模型,如图5所示。
[0156] 请参照图6,图6为本申请实施例提供的一种虚拟试妆装置200的结构框图,该装置200可以是电子设备上的模块、程序段或代码。应理解,该装置200与上述图2方法实施例对应,能够执行图2方法实施例涉及的各个步骤,该装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。

[0157] 可选地,所述装置200包括:
[0158] 三维模型获取模块210,用于获取针对试妆用户的面部三维模型;
[0159] 光照信息确定模块220,用于确定所述面部三维模型中试妆区域的光照信息;
[0160] 试妆产品信息获取模块230,用于获取所述试妆区域对应的试妆产品的材质光学反射参数信息;
[0161] 三维纹理贴图生成模块240,用于基于所述试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成所述试妆区域的三维纹理贴图;
[0162] 三维试妆效果图获得模块250,用于将所述试妆区域的三维纹理贴图叠加到所述面部三维模型中对应的试妆区域,获得三维试妆效果图;
[0163] 二维试妆效果图输出模块260,用于将所述三维试妆效果图转换为二维试妆效果图输出。
[0164] 可选地,所述光照信息确定模块220,用于获取所述面部三维模型中试妆区域的每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息。
[0165] 可选地,所述光照信息确定模块220,用于通过Phong光照模型、Lambert光照模型或BlinnPhong光照模型,获取所述面部三维模型中试妆区域的每个像素点的环境光照信息、漫反射光照信息和/或镜面反射光照信息。
[0166] 可选地,所述试妆产品的材质光学反射参数信息包括镜面反射系数和/或漫反射系数,所述三维纹理贴图生成模块240,用于将所述面部三维模型中所述试妆区域的每个像素点的光照信息与所述材质光学反射参数信息以及所述试妆产品的颜色RGB值进行融合,获得所述试妆区域中每个像素点的像素颜色;基于所述试妆区域中每个像素点的像素颜色,生成所述试妆区域的三维纹理贴图。
[0167] 可选地,所述三维纹理贴图生成模块240,用于基于所述试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成所述试妆区域的初始三维纹理贴图;将所述初始三维纹理贴图中所述试妆区域中每个像素点的像素颜色与初始获取的所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色进行融合,获得所述试妆区域中每个像素点的融合颜色;基于所述试妆区域中每个像素点的融合颜色,生成所述试妆区域的三维纹理贴图。
[0168] 可选地,通过如下公式获得所述试妆区域中每个像素点的融合颜色:
[0169]
[0170] 其中,A表示所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色,B表示所述初始三维纹理贴图中所述试妆区域中每个像素点的像素颜色,C表示所述融合颜色。
[0171] 可选地,所述装置200还包括:
[0172] 三维纹理贴图调节模块,用于基于所述试妆区域的透明度系数调节所述试妆区域的三维纹理贴图的透明度,获得调节后的所述试妆区域的三维纹理贴图。
[0173] 可选地,通过如下公式获得调节后的所述试妆区域的三维纹理贴图:
[0174] T=k*C+(1‑k)*A;
[0175] 其中,T表示调节后的所述试妆区域的三维纹理贴图中每个像素点的像素颜色,k表示透明度系数,C表示所述融合颜色,A表示所述试妆用户的面部图像中对应的试妆区域中对应的像素点的像素颜色。
[0176] 可选地,所述三维模型获取模块210,用于获取所述试妆用户的面部图像;提取所述面部图像中的面部特征点;基于所述面部特征点构建针对所述试妆用户的面部三维模型。
[0177] 可选地,所述三维模型获取模块210,用于通过深度学习算法识别所述面部图像中各个关键部位;提取各个关键部位的特征点。
[0178] 可选地,所述三维模型获取模块210,用于基于各个所述面部特征点在所述面部图像中的坐标以及预先构建的三维平均脸模型中各个面部特征点的坐标,确定所述试妆用户在三维模型中的面部姿态、形状以及表情;根据所述面部姿态、形状以及表情,构建针对所述试妆用户的面部三维模型。
[0179] 本申请实施例提供一种可读存储介质,所述计算机程序被处理器执行时,执行如图2所示方法实施例中电子设备所执行的方法过程。
[0180] 本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:获取针对试妆用户的面部三维模型;确定所述面部三维模型中试妆区域的光照信息;获取每个试妆区域对应的试妆产品的材质光学反射参数信息;基于试妆区域的光照信息以及对应的试妆产品的材质光学反射参数信息,生成试妆区域的三维纹理贴图;将所述试妆区域的三维纹理贴图叠加到所述面部三维模型中对应的试妆区域,获得三维试妆效果图;将所述三维试妆效果图转换为二维试妆效果图输出。
[0181] 综上所述,本申请实施例提供一种虚拟试妆方法、装置、电子设备及可读存储介质,通过在试妆过程中加入光照信息和试妆产品的材质光学反射参数信息,以模拟真实光照环境下的上妆效果,从而可使得虚拟试妆效果与真实试妆效果差异不大,提高了虚拟试妆效果的真实性。
[0182] 在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0183] 另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0184] 再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0185] 在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0186] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

专利地区:北京

专利申请日期:2020-06-05

专利公开日期:2023-06-30

专利公告号:CN111861632B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部
搜索
搜本页
欢迎咨询

扫码可加微信,手机访问拨打咨询

欢迎咨询

欢迎咨询
数据加载中...