一种虚拟角色的生成方法及系统
文献发布时间:2023-06-19 16:09:34
技术领域
本发明涉及立体建模技术领域,特别涉及一种虚拟角色的生成方法及系统。
背景技术
近些年来,元宇宙的概念日益受到互联网企业和网络玩家的追捧,越来越多的线上社交活动开始采用立体虚拟形象即虚拟角色模拟现实的交互场景,较为常见的例如线上直播、线上办公或者角色扮演类游戏等。元宇宙中的虚拟角色一般采用系统预置的立体模型进行构建,用户通过系统提供的个性化工具对虚拟形象进行调整以定制个性化风格的虚拟角色,例如个性化的发型、发色、脸型、肤色以及肤质等。为了使得虚拟角色更贴近现实,近期出现了一些采集用户现实形象数据建立虚拟角色的技术,但由于构建方式复杂、构建程序繁琐、耗费时间过长并且模型效果与真实差距太大等原因,这些技术难以得到推广应用。
发明内容
本发明正是基于上述问题,提出了一种虚拟角色的生成方法及系统,实现了快速生成用户现实形象的虚拟角色。
有鉴于此,本发明的第一方面提出了一种虚拟角色生成方法,包括:
获取目标用户的人脸图像;
根据立体头部模型模板以生成虚拟角色的立体头部模型;
获取初始化渲染参数以对所述立体头部模型进行渲染;
将渲染后的所述立体头部模型投影到指定平面以得到平面投影图像;
将所述平面投影图像与所述目标用户的人脸图像进行匹配;
根据匹配结果对所述立体头部模型和渲染参数进行调整;
使用调整后的渲染参数对调整后的所述立体头部模型进行重新渲染;
循环执行上述投影、匹配、模型和渲染参数调整以及重新渲染的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件。
进一步的,在上述的虚拟角色生成方法中,将所述平面投影图像与所述目标用户的人脸图像进行匹配的步骤具体包括:
提取所述平面投影图像与所述人脸图像的至少一个第一图像特征;
将所述第一图像特征分别转化为对应所述平面投影图像与所述人脸图像的两组坐标向量和两组颜色向量;
计算所述两组坐标向量之间差值以及所述两组颜色向量之间的差值。
进一步的,在上述的虚拟角色生成方法中,所述第一图像特征包括五官图像以及面部轮廓图像,根据匹配结果对所述立体头部模型和渲染参数进行调整的步骤具体包括:
根据所述两组坐标向量之间的差值预测所述所述立体头部模型的渲染参数中对应所述第一图像特征的多个顶点坐标;
将对应所述第一图像特征的多个顶点坐标修改为预测值。
进一步的,在上述的虚拟角色生成方法中,在获取初始化渲染参数以对所述立体头部模型进行渲染的步骤之前,还包括:
获取初始化纹理参数以生成初始化平面纹理空间;
在循环执行上述投影、匹配、模型和渲染参数调整以及重新渲染的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件的步骤之后,还包括:
根据所述立体头部模型建立所述人脸图像与所述初始化平面纹理空间的坐标对应关系;
按照预设的颜色差阈值将所述人脸图像分割为多个区域的局部图像;
将所述多个区域的局部图像根据所述坐标映射关系映射到所述平面纹理空间。
进一步的,在上述的虚拟角色生成方法中,在循环执行上述投影、匹配、模型和渲染参数调整以及重新渲染的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件的步骤之后,还包括:
从所述人脸图像提取至少一个第二图像特征;
根据所述第二图像特征计算环境光参数;
根据所述环境光参数调整所述所述立体头部模型的渲染参数以及所述平面纹理空间的纹理参数。
本发明的第二方面提出了一种虚拟角色生成系统,包括:
图像获取模块,用于获取目标用户的人脸图像;
模型生成模块,用于根据立体头部模型模板以生成虚拟角色的立体头部模型;
模型渲染模块,用于获取初始化渲染参数以对所述立体头部模型进行渲染以及在渲染参数和所述立体头部模型被调整后使用调整后的渲染参数对调整后的所述立体头部模型进行重新渲染;
平面投影模块,用于将渲染后的所述立体头部模型投影到指定平面以得到平面投影图像;
图像匹配模块,用于将所述平面投影图像与所述目标用户的人脸图像进行匹配;
参数调整模块,用于根据匹配结果对所述立体头部模型和渲染参数进行调整;
循环执行模块,用于循环执行投影、匹配和渲染参数调整的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件。
进一步的,在上述的虚拟角色生成系统中,所述图像匹配模块包括:
特征提取子模块,用于提取所述平面投影图像与所述人脸图像的至少一个第一图像特征。所述第一图像特征包括但不限于五官、脸部轮廓中的一个或多个。
向量转化子模块,用于将所述第一图像特征分别转化为对应所述平面投影图像与所述人脸图像的两组坐标向量和两组颜色向量。示例性的,以眼部特征作为所述第一图像特征之一,所述平面投影图像以及所述人脸图像中,将分别从两个图像上提取到的眼部特征转化为相应的坐标向量和颜色向量。假设眼部特征由n个像素点组成,在所述平面投影图像上的坐标值分别为(x1,y1)、(x2,y2)……(xn,yn),颜色值分别为(r1,g1,b1)、(r2,g2,b2)……(rn,gn,bn),在所述人脸图像上的坐标值分别为(x`1,y`1)、(x`2,y`2)……(x`n,y`n),颜色值分别为(r`1,g`1,b`1)、(r`2,g`2,b`2)……(r`n,g`n,b`n),则所述两组坐标向量和两组颜色向量分别构建为:
平面投影图像眼部特征坐标向量:[x1,y1,x2,y2,……,xn,yn];
人脸图像眼部特征坐标向量:[x`1,y`1,x`2,y`2,……,x`n,y`n];
平面投影图像眼部特征颜色向量:[r1,g1,b1,r2,g2,b2,……,rn,gn,bn];
人脸图像眼部特征颜色向量:[r`1,g`1,b`1,r`2,g`2,b`2,……,r`n,g`n,b`n]。
差值计算子模块,用于计算所述两组坐标向量之间差值以及所述两组颜色向量之间的差值。在本发明的一些实施方式中,将所述平面投影图像与所述人脸图像的眼部特征坐标向量及眼部特征颜色向量分别相减得到眼部特征坐标差值向量[dx1,dy1,dx2,dy2,……,dxn,dyn]以及眼部特征颜色差值向量[dr1,dg1,db1,dr2,dg2,db2,……,drn,dgn,dbn]。根据所述坐标差值向量和所述颜色差值向量预测所述立体头部模型和所述渲染参数的至少一组调整值,并据此调整所述所述立体头部模型和所述渲染参数。
进一步的,在上述的虚拟角色生成系统中,所述第一图像特征包括五官图像以及面部轮廓图像,所述参数调整模块包括:
坐标预测子模块,用于根据所述两组坐标向量之间的差值预测所述所述立体头部模型的渲染参数中对应所述第一图像特征的多个顶点坐标。由于从所述立体头部模型到所述平面投影图像的变化是从三维到两维的变化,对应两维图像中的坐标向量差值,映射到三维空间后,所述立体头部模开路中对应区域例如眼部区域,其相应的顶点坐标的对应有多组不同的预测值。而采用其中任一种可能的顶点坐标预测值作为调整后的坐标值,其由于空间坐标的变化,同样会对投影图像中相关联区域的颜色向量带来影响,例如眼窝的深度的不同其相应区域的阴影面积也会有所变化等。
坐标修改子模块,用于将对应所述第一图像特征的多个顶点坐标修改为预测值。在循环执行所述投影、匹配、模型和渲染参数调整以及重新渲染的步骤中,通过对上述顶点坐标多组不同的预测值进行逐一测试,在测试过程中根据所述颜色向量坐标的差值变化来判断所述顶点坐标值是否符合预设条件。
进一步的,在上述的虚拟角色生成系统中,所述参数获取模块还用于获取初始化纹理参数以生成初始化平面纹理空间,所述虚拟角色生成系统还包括:
坐标关联模块,用于根据所述立体头部模型建立所述人脸图像与所述初始化平面纹理空间的坐标对应关系。在前述将所述平面投影图像与所述目标用户的人脸图像进行匹配的步骤中以及获取初始化纹理参数以生成初始化平面纹理空间的步骤中已经分别建立了所述人脸图像与所述立体头部模型间的映射关系以及所述平面纹理空间与所述立体头部模型间的映射关系,根据三者之间的关系,可以建立所述人脸图像上每个像素的坐标值与所述平面纹理空间上每个像素的坐标值之间的映射关系。
图像分割模块,用于按照预设的颜色差阈值将所述人脸图像分割为多个区域的局部图像。人脸不同区域包括头发、额头、眉毛、眼睛、脸颊、鼻梁、嘴唇以及下巴等不同区域在颜色上会有较大差异,其中脸颊部分在不同光线的作用下,也可能存在暗色部分和高光部分,以一定的颜色容差范围为阈值,将不同颜色的区域划分成不同的局部图像。
像素映射模块,用于将所述多个区域的局部图像根据所述坐标映射关系映射到所述平面纹理空间。将上述每个局部图像按照前述的坐标映射关系映射到所述平面纹理空间中,随后使用平滑函数将衔接部分执行平滑处理以避免衔接处的过渡显示非常生硬。
进一步的,在上述的虚拟角色生成系统中,还包括:
特征提取模块,用于从所述人脸图像提取至少一个第二图像特征。所述第二图像特征包括所述人脸图像上的暗色部分和高光部分。
参数计算模块,用于根据所述第二图像特征计算环境光参数。所述环境光参数括但不限于光照方向、环境光颜色及强度、漫反射和镜面反射的强度及颜色等。
所述参数调整模块还用于根据所述环境光参数调整所述所述立体头部模型的渲染参数以及所述平面纹理空间的纹理参数。
本发明提出一种虚拟角色的生成方法及系统,通过获取目标用户的人脸图像,根据立体头部模型模板以生成虚拟角色的立体头部模型,获取初始化渲染参数以对所述立体头部模型进行渲染,将渲染后的所述立体头部模型投影到指定平面以得到平面投影图像,将所述平面投影图像与所述目标用户的人脸图像进行匹配,根据匹配结果对所述立体头部模型和渲染参数进行调整,使用调整后的渲染参数对调整后的所述立体头部模型进行重新渲染,循环执行上述投影、匹配、模型和渲染参数调整以及重新渲染的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件,实现了快速生成用户现实形象的虚拟角色。
附图说明
图1是本发明一个实施例提供的一种虚拟角色生成方法的示意流程图;
图2是本发明一个实施例提供的投影图像与人脸图像匹配方法的示意流程图;
图3是本发明一个实施例提供的立体模型顶点坐标修改方法的示意流程图;
图4是本发明一个实施例提供的纹理空间生成方法的示意流程图;
图5是本发明一个实施例提供的环境光参数调整方法的示意流程图;
图6是本发明一个实施例提供的一种虚拟角色生成系统的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
在本发明的描述中,术语“多个”则指两个或两个以上,除非另有明确的限定,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本说明书的描述中,术语“一个实施例”、“一些实施方式”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
下面参照图1至图6来描述根据本发明一些实施方式提供的一种虚拟角色的生成方法及系统。
如图1所示,本发明的第一方面提出了一种虚拟角色生成方法,包括:
S110:获取目标用户的人脸图像。在本发明的一些实施方式中,所述目标用户的人脸图像可以是提前拍摄好的照片,由所述虚拟角色生成系统从本地或者远程存储空间中读取得到。在本发明的另一些实施方式中,所述目标用户的人脸图像也可以是在所述虚拟角色生成系统的生成程序启动时,实时通过摄像装置拍摄得到。通过上述方式获取到所述目标用户的人脸图像后,所述虚拟角色生成系统即可根据所述人脸图像为用户生成与其现实形象样貌相似的虚拟角色。
S120:根据立体头部模型模板以生成虚拟角色的立体头部模型。在根据所述目标用户人脸图像生成所述虚拟角色之前,首先使用通用的立体头部模型模板构建一个通用的立体头部模型。进一步的,在本发明的一些实施方式中,在获取所述目标用户的人脸图像后,对所述人脸图像执行图像特征提取和分析以获取所述目标用户的脸部特征,从而根据所述脸部特征获取对应的立体头部模型模板。例如,所述目标用户的特征包括所述目标用户的性别特征,在获取所述目标用户的人脸图像后,对所述人脸图像执行人脸识别以确认所述目标用户是男性用户还是女性用户,以在当前步骤中获取对应的男性虚拟角色的立体头部模型模板或者女性虚拟角色的立体头部模型模板。所述目标用户的特征还包括所述目标用户的种族特征、年龄特征等。在本发明的一些实施方式中,所述虚拟角色生成系统预置对应不同种族、性别以及年龄的立体头部模型模板,根据对所述人脸图像中所述目标用户脸部特征的提取和分析,从而识别出所述目标用户的种族、性别和年龄,从而根据上述信息获取对应的立体头部模型模板来生成虚拟角色初步立体头部模型,以减少后续对所述立体头部模型和渲染参数进行调整所耗费的时间。
S130:获取初始化渲染参数以对所述立体头部模型进行渲染。所述初始化渲染参数包括但不限于光源数量、光源类型、光源位置、光源颜色、光源光照强度、相机位置、相机角度以及环境物体的反射/漫反射属性等。具体的,在所述获取初始化渲染参数以对所述立体头部模型进行渲染的步骤之前,所述虚拟角色生成系统还获取初始化纹理参数以生成初始化平面纹理空间,在使用所述初始化平面纹理空间映射到所述立体头部模型上以使所述立体头部模型具有初步的材质纹理属性。
S140:将渲染后的所述立体头部模型投影到指定平面以得到平面投影图像。具体的,根据所述人脸图像中五官及脸部轮廓的相对位置确认摄像装置获取所述人脸图像时的所述摄像装置与所述目标用户头部的相对角度,将该相对角度作为所述立体头部模型与所述指定平面的相对角度以获得所述立体头部模型的平面投影图像。
S150:将所述平面投影图像与所述目标用户的人脸图像进行匹配。通过对所述平面投影图像与所述目标用户的人脸图像进行匹配确定所述平面投影图像与所述人脸图像的差异,例如头发、脸型以及五官形状、位置上的差异,以及每个图像区域的颜色、亮度、对比度上的差异等。
S160:根据匹配结果对所述立体头部模型和渲染参数进行调整。具体的,根据所述平面投影图像与所述人脸图像的差异,计算使所述平面投影图像趋向于与所述人脸图像相同的所述立体头部模型和渲染参数的调整方式,并按该调整方式对所述立体头部模型和渲染参数进行调整。
S170:使用调整后的渲染参数对调整后的所述立体头部模型进行重新渲染。调整后的所述立体头部模型会产生的变化包括如发型的变化、脸型的变化以及五官形状的变化等。调整后的所述渲染参数所带来的变化包括头部模型的方向、全局亮度、脸部阴影的颜色/大小、脸部反光区域的亮度/颜色/大小等。
S180:循环执行上述投影、匹配、模型和渲染参数调整以及重新渲染的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件。所述平面投影图像上的同一图像特征的坐标和颜色受到所述立体头部模型和所述渲染参数中的多个不同参数的影响,且不同图像特征之间也会相互影响,因此无法根据所述平面投影图像与所述人脸图像的差异直接还原出唯一的所述立体头部模型和所述渲染参数,需要对所述立体头部模型和所述渲染参数进行多次调整使得所述平面投影图像趋向于与所述人脸图像相同。由于拍摄环境的复杂因素,完全还原所述立体头部模型和渲染参数以使所述平面投影图像与所述人脸图像完全相同所耗费的计算资源和时间资源是非常巨大且非必要的,因此当所述平面投影图像与所述目标用户的人脸图像的相似度达到预期即可停止所述循环执行的步骤。所述预设条件具体是指所述平面投影图像与所述目标用户的人脸图像上的一个或多个图像特征的坐标向量、颜色向量的差值小于预设的阈值。
如图2所示,在上述的虚拟角色生成方法中,将所述平面投影图像与所述目标用户的人脸图像进行匹配的步骤具体包括:
S151:提取所述平面投影图像与所述人脸图像的至少一个第一图像特征。所述第一图像特征包括但不限于五官、脸部轮廓中的一个或多个。
S152:将所述第一图像特征分别转化为对应所述平面投影图像与所述人脸图像的两组坐标向量和两组颜色向量。示例性的,以眼部特征作为所述第一图像特征之一,所述平面投影图像以及所述人脸图像中,将分别从两个图像上提取到的眼部特征转化为相应的坐标向量和颜色向量。假设眼部特征由n个像素点组成,在所述平面投影图像上的坐标值分别为(x1,y1)、(x2,y2)……(xn,yn),颜色值分别为(r1,g1,b1)、(r2,g2,b2)……(rn,gn,bn),在所述人脸图像上的坐标值分别为(x`1,y`1)、(x`2,y`2)……(x`n,y`n),颜色值分别为(r`1,g`1,b`1)、(r`2,g`2,b`2)……(r`n,g`n,b`n),则所述两组坐标向量和两组颜色向量分别构建为:
平面投影图像眼部特征坐标向量:[x1,y1,x2,y2,……,xn,yn];
人脸图像眼部特征坐标向量:[x`1,y`1,x`2,y`2,……,x`n,y`n];
平面投影图像眼部特征颜色向量:[r1,g1,b1,r2,g2,b2,……,rn,gn,bn];
人脸图像眼部特征颜色向量:[r`1,g`1,b`1,r`2,g`2,b`2,……,r`n,g`n,b`n]。
S153:计算所述两组坐标向量之间差值以及所述两组颜色向量之间的差值。在本发明的一些实施方式中,将所述平面投影图像与所述人脸图像的眼部特征坐标向量及眼部特征颜色向量分别相减得到眼部特征坐标差值向量[dx1,dy1,dx2,dy2,……,dxn,dyn]以及眼部特征颜色差值向量[dr1,dg1,db1,dr2,dg2,db2,……,drn,dgn,dbn]。根据所述坐标差值向量和所述颜色差值向量预测所述立体头部模型和所述渲染参数的至少一组调整值,并据此调整所述所述立体头部模型和所述渲染参数。
如图3所示,在上述的虚拟角色生成方法中,所述第一图像特征包括五官图像以及面部轮廓图像,根据匹配结果对所述立体头部模型和渲染参数进行调整的步骤具体包括:
S161:根据所述两组坐标向量之间的差值预测所述所述立体头部模型的渲染参数中对应所述第一图像特征的多个顶点坐标。由于从所述立体头部模型到所述平面投影图像的变化是从三维到两维的变化,对应两维图像中的坐标向量差值,映射到三维空间后,所述立体头部模开路中对应区域例如眼部区域,其相应的顶点坐标的对应有多组不同的预测值。而采用其中任一种可能的顶点坐标预测值作为调整后的坐标值,其由于空间坐标的变化,同样会对投影图像中相关联区域的颜色向量带来影响,例如眼窝的深度的不同其相应区域的阴影面积也会有所变化等。
S162:将对应所述第一图像特征的多个顶点坐标修改为预测值。在循环执行所述投影、匹配、模型和渲染参数调整以及重新渲染的步骤中,通过对上述顶点坐标多组不同的预测值进行逐一测试,在测试过程中根据所述颜色向量坐标的差值变化来判断所述顶点坐标值是否符合预设条件。
如图4所示,在上述的虚拟角色生成方法中,在获取初始化渲染参数以对所述立体头部模型进行渲染的步骤之前,还包括:
S210:获取初始化纹理参数以生成初始化平面纹理空间。如前所述,根据对所述人脸图像的分析判断目标用户的种族、性别、年龄等,从而从预设的模板信息中读取初始化的纹理参数以生成初始化的平面纹理空间。所述平面纹理空间为所述立体头部模型的表面沿预设分割线切割后平铺到一个平面上的展开图形,所述平面纹理空间的坐标与所述立体头部模型表面的坐标具有映射关系,在每一次执行对所述立体头部模型进行渲染的步骤之前,将所述平面纹理空间的材质纹理映射到所述立体头部模型表面,使所述立体头部模型表面具备颜色、光泽等属性。
在循环执行上述投影、匹配、模型和渲染参数调整以及重新渲染的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件的步骤之后,还包括:
S220:根据所述立体头部模型建立所述人脸图像与所述初始化平面纹理空间的坐标对应关系。在前述将所述平面投影图像与所述目标用户的人脸图像进行匹配的步骤中以及获取初始化纹理参数以生成初始化平面纹理空间的步骤中已经分别建立了所述人脸图像与所述立体头部模型间的映射关系以及所述平面纹理空间与所述立体头部模型间的映射关系,根据三者之间的关系,可以建立所述人脸图像上每个像素的坐标值与所述平面纹理空间上每个像素的坐标值之间的映射关系。
S230:按照预设的颜色差阈值将所述人脸图像分割为多个区域的局部图像。人脸不同区域包括头发、额头、眉毛、眼睛、脸颊、鼻梁、嘴唇以及下巴等不同区域在颜色上会有较大差异,其中脸颊部分在不同光线的作用下,也可能存在暗色部分和高光部分,以一定的颜色容差范围为阈值,将不同颜色的区域划分成不同的局部图像。
S240:将所述多个区域的局部图像根据所述坐标映射关系映射到所述平面纹理空间。将上述每个局部图像按照前述的坐标映射关系映射到所述平面纹理空间中,随后使用平滑函数将衔接部分执行平滑处理以避免衔接处的过渡显示非常生硬。
如图5所示,在上述的虚拟角色生成方法中,在循环执行上述投影、匹配、模型和渲染参数调整以及重新渲染的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件的步骤之后,还包括:
S310:从所述人脸图像提取至少一个第二图像特征。所述第二图像特征包括所述人脸图像上的暗色部分和高光部分。
S320:根据所述第二图像特征计算环境光参数。所述环境光参数括但不限于光照方向、环境光颜色及强度、漫反射和镜面反射的强度及颜色等。
S330:根据所述环境光参数调整所述所述立体头部模型的渲染参数以及所述平面纹理空间的纹理参数。
如图6所示,本发明的第二方面提出了一种虚拟角色生成系统,包括:
图像获取模块,用于获取目标用户的人脸图像。在本发明的一些实施方式中,所述目标用户的人脸图像可以是提前拍摄好的照片,由所述虚拟角色生成系统从本地或者远程存储空间中读取得到。在本发明的另一些实施方式中,所述目标用户的人脸图像也可以是在所述虚拟角色生成系统的生成程序启动时,实时通过摄像装置拍摄得到。通过上述方式获取到所述目标用户的人脸图像后,所述虚拟角色生成系统即可根据所述人脸图像为用户生成与其现实形象样貌相似的虚拟角色。
模型生成模块,用于根据立体头部模型模板以生成虚拟角色的立体头部模型。在根据所述目标用户人脸图像生成所述虚拟角色之前,首先使用通用的立体头部模型模板构建一个通用的立体头部模型。进一步的,在本发明的一些实施方式中,在获取所述目标用户的人脸图像后,对所述人脸图像执行图像特征提取和分析以获取所述目标用户的脸部特征,从而根据所述脸部特征获取对应的立体头部模型模板。例如,所述目标用户的特征包括所述目标用户的性别特征,在获取所述目标用户的人脸图像后,对所述人脸图像执行人脸识别以确认所述目标用户是男性用户还是女性用户,以在当前步骤中获取对应的男性虚拟角色的立体头部模型模板或者女性虚拟角色的立体头部模型模板。所述目标用户的特征还包括所述目标用户的种族特征、年龄特征等。在本发明的一些实施方式中,所述虚拟角色生成系统预置对应不同种族、性别以及年龄的立体头部模型模板,根据对所述人脸图像中所述目标用户脸部特征的提取和分析,从而识别出所述目标用户的种族、性别和年龄,从而根据上述信息获取对应的立体头部模型模板来生成虚拟角色初步立体头部模型,以减少后续对所述立体头部模型和渲染参数进行调整所耗费的时间。
模型渲染模块,用于获取初始化渲染参数以对所述立体头部模型进行渲染以及在渲染参数和所述立体头部模型被调整后使用调整后的渲染参数对调整后的所述立体头部模型进行重新渲染。所述初始化渲染参数包括但不限于光源数量、光源类型、光源位置、光源颜色、光源光照强度、相机位置、相机角度以及环境物体的反射/漫反射属性等。具体的,在所述获取初始化渲染参数以对所述立体头部模型进行渲染的步骤之前,所述虚拟角色生成系统还获取初始化纹理参数以生成初始化平面纹理空间,在使用所述初始化平面纹理空间映射到所述立体头部模型上以使所述立体头部模型具有初步的材质纹理属性。调整后的所述立体头部模型会产生的变化包括如发型的变化、脸型的变化以及五官形状的变化等。调整后的所述渲染参数所带来的变化包括头部模型的方向、全局亮度、脸部阴影的颜色/大小、脸部反光区域的亮度/颜色/大小等。
平面投影模块,用于将渲染后的所述立体头部模型投影到指定平面以得到平面投影图像。具体的,根据所述人脸图像中五官及脸部轮廓的相对位置确认摄像装置获取所述人脸图像时的所述摄像装置与所述目标用户头部的相对角度,将该相对角度作为所述立体头部模型与所述指定平面的相对角度以获得所述立体头部模型的平面投影图像。
图像匹配模块,用于将所述平面投影图像与所述目标用户的人脸图像进行匹配。通过对所述平面投影图像与所述目标用户的人脸图像进行匹配确定所述平面投影图像与所述人脸图像的差异,例如头发、脸型以及五官形状、位置上的差异,以及每个图像区域的颜色、亮度、对比度上的差异等。
参数调整模块,用于根据匹配结果对所述立体头部模型和渲染参数进行调整。具体的,根据所述平面投影图像与所述人脸图像的差异,计算使所述平面投影图像趋向于与所述人脸图像相同的所述立体头部模型和渲染参数的调整方式,并按该调整方式对所述立体头部模型和渲染参数进行调整。
循环执行模块,用于循环执行投影、匹配和渲染参数调整的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件。所述平面投影图像上的同一图像特征的坐标和颜色受到所述立体头部模型和所述渲染参数中的多个不同参数的影响,且不同图像特征之间也会相互影响,因此无法根据所述平面投影图像与所述人脸图像的差异直接还原出唯一的所述立体头部模型和所述渲染参数,需要对所述立体头部模型和所述渲染参数进行多次调整使得所述平面投影图像趋向于与所述人脸图像相同。由于拍摄环境的复杂因素,完全还原所述立体头部模型和渲染参数以使所述平面投影图像与所述人脸图像完全相同所耗费的计算资源和时间资源是非常巨大且非必要的,因此当所述平面投影图像与所述目标用户的人脸图像的相似度达到预期即可停止所述循环执行的步骤。所述预设条件具体是指所述平面投影图像与所述目标用户的人脸图像上的一个或多个图像特征的坐标向量、颜色向量的差值小于预设的阈值。
进一步的,在上述的虚拟角色生成系统中,所述图像匹配模块包括:
特征提取子模块,用于提取所述平面投影图像与所述人脸图像的至少一个第一图像特征;
向量转化子模块,用于将所述第一图像特征分别转化为对应所述平面投影图像与所述人脸图像的两组坐标向量和两组颜色向量;
差值计算子模块,用于计算所述两组坐标向量之间差值以及所述两组颜色向量之间的差值。
进一步的,在上述的虚拟角色生成系统中,所述第一图像特征包括五官图像以及面部轮廓图像,所述参数调整模块包括:
坐标预测子模块,用于根据所述两组坐标向量之间的差值预测所述所述立体头部模型的渲染参数中对应所述第一图像特征的多个顶点坐标;
坐标修改子模块,用于将对应所述第一图像特征的多个顶点坐标修改为预测值。
进一步的,在上述的虚拟角色生成系统中,所述参数获取模块还用于获取初始化纹理参数以生成初始化平面纹理空间,所述虚拟角色生成系统还包括:
坐标关联模块,用于根据所述立体头部模型建立所述人脸图像与所述初始化平面纹理空间的坐标对应关系;
图像分割模块,用于按照预设的颜色差阈值将所述人脸图像分割为多个区域的局部图像;
像素映射模块,用于将所述多个区域的局部图像根据所述坐标映射关系映射到所述平面纹理空间。
进一步的,在上述的虚拟角色生成系统中,还包括:
特征提取模块,用于从所述人脸图像提取至少一个第二图像特征;
参数计算模块,用于根据所述第二图像特征计算环境光参数;
所述参数调整模块还用于根据所述环境光参数调整所述所述立体头部模型的渲染参数以及所述平面纹理空间的纹理参数。
本发明提出一种虚拟角色的生成方法及系统,通过获取目标用户的人脸图像,根据立体头部模型模板以生成虚拟角色的立体头部模型,获取初始化渲染参数以对所述立体头部模型进行渲染,将渲染后的所述立体头部模型投影到指定平面以得到平面投影图像,将所述平面投影图像与所述目标用户的人脸图像进行匹配,根据匹配结果对所述立体头部模型和渲染参数进行调整,使用调整后的渲染参数对调整后的所述立体头部模型进行重新渲染,循环执行上述投影、匹配、模型和渲染参数调整以及重新渲染的步骤直至所述平面投影图像与所述目标用户的人脸图像的匹配图符合预设条件,实现了快速生成用户现实形象的虚拟角色。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。
- 一种虚拟角色动画生成方法和系统
- 一种虚拟角色生成系统及方法