一种人脸贴图处理方法及装置与流程

文档序号:11145223阅读:627来源:国知局
一种人脸贴图处理方法及装置与制造工艺

本发明涉及图像处理技术领域,尤其涉及一种人脸贴图处理方法及装置。



背景技术:

随着人脸建模技术的快速发展,人们对人脸建模的要求越来越高,希望可以将人的脸部特征通过计算机真实的展现出来,生成的人脸尽可能的接近真实人脸。现有技术中图像处理过程中由于受到模型和计算机能力的限制,生成的图像往往无法达到人们的需求,不够协调和逼真,且生成图像的过程较为复杂。



技术实现要素:

本发明的目的在于提供一种人脸贴图处理方法及装置,通过获取与人脸图像匹配的人脸模型,对人脸模型进行纹理贴图处理,形成虚拟人物头像,可以有效保证生成的虚拟人物头像与虚拟人物身体各部分的协调。

本发明实施例提供一种人脸贴图处理方法,所述方法包括:

获取人脸图像及一预设模型,根据所述人脸图像对所述预设模型进行调整,获取一与所述人脸图像匹配的人脸模型;

建立所述人脸模型上的向量点与所述人脸图像上的向量点的映射关系,从而使得所述人脸模型上的向量面与所述人脸图像上的向量面一一对应;

根据所述人脸图像上的向量面内的颜色值,以及所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,对所述人脸模型进行纹理贴图处理,生成虚拟人物头像。

可选的,所述根据所述人脸图像上的向量面内的颜色值,以及所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,对所述人脸模型进行纹理贴图处理,生成虚拟人物头像,包括:

根据所述人脸模型创建一空白纹理,所述空白纹理上的向量面与所述人脸 模型上的向量面相对应;

获取所述人脸图像上的向量面内的颜色值;

根据所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,将所述人脸图像上的向量面内的颜色值设置到所述空白纹理的对应向量面内,形成一纹理贴图;

将所述纹理贴图与所述人脸模型进行贴合处理,形成虚拟人物头像。

可选的,所述方法还包括:

将获取的与所述人脸图像匹配的人脸模型进行拆分,拆分后的人脸模型包括第一类分模型和第二类分模型;

记录所述第一类分模型上的向量面与所述人脸模型上的向量面的对应关系以及所述第二类分模型上的向量面与所述人脸模型上的向量面的对应关系;

则,所述根据所述人脸图像上的向量面内的颜色值,以及所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,对所述人脸模型进行纹理贴图处理包括:

根据所述人脸模型创建一空白纹理,所述空白纹理上的向量面与所述人脸模型上的向量面相对应;

根据所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,以及记录的所述第一类分模型上的向量面与所述人脸模型上的向量面的对应关系,获取所述人脸图像上的与所述第一类分模型对应的向量面内的颜色值,并将所述人脸图像上的与所述第一类分模型对应的向量面内的颜色值设置到所述空白纹理的与所述第一类分模型对应的向量面内;

将设置了颜色值的空白纹理所形成的纹理贴图与所述人脸模型进行贴合处理,形成虚拟人物头像。

具体的,所述第一类分模型至少包括器官模型。

进一步的,所述器官模型包括第一器官模型;

所述根据所述人脸图像上的向量面内的颜色值,以及所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,对所述人脸模型进行纹理贴图处理还包括:

根据人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值,确 定所述第二类分模型的向量面内的颜色值;

根据记录的所述第二类分模型上的向量面与所述人脸模型上的向量面的对应关系,将确定的第二类分模型的向量面内的颜色值设置到所述空白纹理的与所述第二类分模型对应的向量面内。

可选的,所述第二类分模型包括N个,其中N大于等于1;

所述根据人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值,确定所述第二类分模型的向量面内的颜色值包括:

提取所述人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值;

将提取的颜色值转化为灰度值;

提取所述灰度值的最高值对应的颜色值和所述灰度值的最低值对应的颜色值;

根据所述灰度值的最高值对应的颜色值和所述灰度值的最低值对应的颜色值,确定N个所述第二类分模型的向量面内的颜色值。

具体的,所述第一器官模型为脸颊模型。

可选的,所述人脸图像上的向量面内的颜色值包括所述人脸图像上的向量面内的颜色平均值。

可选的,所述第二类分模型包括N个,其中N大于等于1;

所述根据所述人脸图像上的向量面内的颜色值,以及所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,对所述人脸模型进行纹理贴图处理还包括:

根据记录的所述第二类分模型上的向量面与所述人脸模型上的向量面的对应关系,将预先设置的第二类分模型的向量面内的颜色值设置到所述空白纹理的与所述第二类分模型对应的向量面内。

可选的,所述第二类分模型包括N个,其中N大于等于1;

所述根据所述人脸图像上的向量面内的颜色值,以及所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,对所述人脸模型进行纹理贴图处理还包括:

在所述人脸图像上获取N个颜色值,将获取的所述N个颜色值转化为N 个灰度值;

对所述N个灰度值按照灰度由大到小的顺序进行排序,获得与所述N个灰度值对应的依次排列的N个颜色值;

按照N个第二类分模型的亮度顺序,将依次排列的N个颜色值分别一一对应到所述N个第二类分模型,分别确定为所述N个第二类分模型的向量面内的颜色值;

根据记录的所述第二类分模型上的向量面与所述人脸模型上的向量面的对应关系,将确定的第二类分模型的向量面内的颜色值设置到所述空白纹理的与所述第二类分模型对应的向量面内。

可选的,所述建立所述人脸模型上的向量点与所述人脸图像上的向量点的映射关系,从而使得所述人脸模型上的向量面与所述人脸图像上的向量面一一对应,具体为:

根据所述人脸模型上的向量点之间的连接关系建立所述人脸图像上的向量点之间的连接关系,从而形成所述人脸模型上的向量面与所述人脸图像上的向量面的一一对应。

本发明实施例提供一种人脸贴图处理装置,所述装置包括:

获取调整模块,用于获取人脸图像及一预设模型,根据所述人脸图像对所述预设模型进行调整,获取一与所述人脸图像匹配的人脸模型;

建立模块,用于建立所述人脸模型上的向量点与所述人脸图像上的向量点的映射关系,从而使得所述人脸模型上的向量面与所述人脸图像上的向量面一一对应;

处理生成模块,用于根据所述人脸图像上的向量面内的颜色值,以及所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,对所述人脸模型进行纹理贴图处理,生成虚拟人物头像。

可选的,所述处理生成模块包括:

创建子模块,用于根据所述人脸模型创建一空白纹理,所述空白纹理上的向量面与所述人脸模型上的向量面相对应;

处理子模块,用于获取所述人脸图像上的向量面内的颜色值,根据所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,将所述人脸图像上 的向量面内的颜色值设置到所述空白纹理的对应向量面内,形成一纹理贴图;

贴合子模块,用于将所述纹理贴图与所述人脸模型进行贴合处理,形成虚拟人物头像。

可选的,所述装置还包括:

拆分模块,用于将获取的与所述人脸图像匹配的人脸模型进行拆分,拆分后的人脸模型包括第一类分模型和第二类分模型;

记录模块,用于记录所述第一类分模型上的向量面与所述人脸模型上的向量面的对应关系以及所述第二类分模型上的向量面与所述人脸模型上的向量面的对应关系;

所述处理生成模块具体用于:

根据所述人脸模型创建一空白纹理,所述空白纹理上的向量面与所述人脸模型上的向量面相对应;

根据所述人脸模型上的向量面与所述人脸图像上的向量面的对应关系,以及记录的所述第一类分模型上的向量面与所述人脸模型上的向量面的对应关系,获取所述人脸图像上的与所述第一类分模型对应的向量面内的颜色值,并将所述人脸图像上的与所述第一类分模型对应的向量面内的颜色值设置到所述空白纹理的与所述第一类分模型对应的向量面内;

将设置了颜色值的空白纹理所形成的纹理贴图与所述人脸模型进行贴合处理,形成虚拟人物头像。

可选的,所述第一类分模型至少包括器官模型,所述器官模型包括第一器官模型;

所述处理生成模块还用于:

根据人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值,确定所述第二类分模型的向量面内的颜色值;

根据记录的所述第二类分模型上的向量面与所述人脸模型上的向量面的对应关系,将确定的第二类分模型的向量面内的颜色值设置到所述空白纹理的与所述第二类分模型对应的向量面内。

可选的,所述第二类分模型包括N个,其中N大于等于1;

所述处理生成模块用于:

提取所述人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值;

将提取的颜色值转化为灰度值;

提取所述灰度值的最高值对应的颜色值和所述灰度值的最低值对应的颜色值;

根据所述灰度值的最高值对应的颜色值和所述灰度值的最低值对应的颜色值,确定N个所述第二类分模型的向量面内的颜色值。

可选的,所述第二类分模型包括N个,其中N大于等于1;

所述处理生成模块用于:

根据记录的所述第二类分模型上的向量面与所述人脸模型上的向量面的对应关系,将预先设置的第二类分模型的向量面内的颜色值设置到所述空白纹理的与所述第二类分模型对应的向量面内。

可选的,所述第二类分模型包括N个,其中N大于等于1;

所述处理生成模块用于:

在所述人脸图像上获取N个颜色值,将获取的所述N个颜色值转化为N个灰度值;

对所述N个灰度值按照灰度由大到小的顺序进行排序,获得与所述N个灰度值对应的依次排列的N个颜色值;

按照N个第二类分模型的亮度顺序,将依次排列的N个颜色值分别一一对应到所述N个第二类分模型,分别确定为所述N个第二类分模型的向量面内的颜色值;

根据记录的所述第二类分模型上的向量面与所述人脸模型上的向量面的对应关系,将确定的第二类分模型的向量面内的颜色值设置到所述空白纹理的与所述第二类分模型对应的向量面内。

可选的,所述建立模块具体用于:

根据所述人脸模型上的向量点之间的连接关系建立所述人脸图像上的向量点之间的连接关系,从而形成所述人脸模型上的向量面与所述人脸图像上的向量面的一一对应。

本发明实施例至少包括以下的有益效果:

本发明实施例通过获取人脸图像的人脸特征点,利用人脸特征点对预设模型进行调整,获取与人脸图像匹配的3d人脸模型,然后通过处理人脸图像,利用人脸图像的向量面与人脸模型的向量面的对应关系,形成新的纹理贴图,并将新的纹理贴图与人脸模型匹配形成新的虚拟人物头像,一方面这种方式生成的新的虚拟人物图像可以有效保证与虚拟人物身体各部分的协调,另一方面还能够有效提高虚拟人物头像的逼真度,此外,还可以将形成的新的人物头像与不同的虚拟人物身体模型结合,形成不同的人物,提高趣味性。本发明实施例方案简单,人工处理量小,适用于要求简单且快速的建模需求。

附图说明

图1为本发明实施例人脸贴图处理方法步骤示意图;

图2为本发明实施例人脸图像包围盒示意图;

图3为本发明实施例人脸模型包围盒示意图;

图4为本发明实施例人脸模型脸部轮廓示意图;

图5为本发明实施例人脸图像脸部轮廓示意图;

图6为本发明实施例人脸模型面部主要器官包围盒示意图;

图7为本发明实施例人脸图像面部主要器官包围盒示意图;

图8为本发明实施例面部主要部分模型示意图;

图9为本发明实施例人脸模型的眉毛模型示意图;

图10为本发明实施例人脸模型的眼睛模型示意图;

图11为本发明实施例人脸模型的嘴模型示意图。

图12为本发明实施例人脸模型第一模型示意图;

图13为本发明实施例人脸模型第二模型示意图;

图14为本发明实施例人脸模型第三模型示意图;

图15为依据人脸模型的三角面(向量面)映射到人脸图像上的示意图;

图16为根据本发明的一个实施例生成的虚拟人物头像的示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附 图及具体实施例进行详细描述。

本发明实施例提供一种人脸贴图处理方法,如图1所示,所述方法包括:

步骤S10、获取人脸图像及一预设模型,根据人脸图像对预设模型进行调整,获取一与人脸图像匹配的人脸模型;

步骤S20、建立人脸模型上的向量点与人脸图像上的向量点的映射关系,从而使得人脸模型上的向量面与人脸图像上的向量面一一对应;

步骤S30、根据人脸图像上的向量面内的颜色值,以及人脸模型上的向量面与人脸图像上的向量面的对应关系,对人脸模型进行纹理贴图处理,生成虚拟人物头像。

具体的,通过摄像头拍照或者直接使用已有照片的方式采集得到人脸图像,具体可采用现有的人脸检测方法,如ASM(Active Shape Model,主动形状模型)对采集到的人脸图像进行检测,获取人脸图像上的面部特征区域,根据获取得到的面部特征区域对一预设模型进行调整,从而获取一与人脸图像匹配的人脸模型。

本领域技术人员可以理解的是,模型是由若干向量点组成的,至少三个向量点可确定一个向量面,如图3所示的三角形向量面(简称三角面)。本发明以向量面为三角面予以说明,但本发明不限于此。

需要说明的是,预设模型与人脸模型上的各个向量点的数量和标号是相同的,在对预设模型进行调整形成与人脸图像匹配的人脸模型时,向量点的数量不会发生变化,每个向量点的标号也不会发生变化,所需变化的是向量点的位置。

然后,建立人脸模型上的向量点与人脸图像上的向量点的映射关系,形成人脸模型上的向量面与人脸图像上的向量面的一一对应。

需要说明的是,在本发明的一个实施例中,也可以在获取人脸图像及一预设模型之后,先建立预设模型与人脸图像上各向量点的映射关系,由于对预设模型进行调整形成人脸模型时,向量点的数量、每个向量点的标号都不会发生变化,在建立预设模型与人脸图像上向量点的映射关系后,即也可以建立对预设模型进行调整后形成的人脸模型与人脸图像上向量点的映射关系。

因此,在建立预设模型与人脸图像上的向量点的映射关系后,可以形成预 设模型上的向量面与人脸图像上的向量面的一一对应,同时也可以形成人脸模型上的向量面与人脸图像上的向量面的一一对应。

在本发明的实施例中,建立人脸模型上的向量点与人脸图像上的向量点的映射关系,从而使得人脸模型上的向量面与人脸图像上的向量面一一对应,具体可以为:

根据人脸模型上的向量点之间的连接关系建立人脸图像上的向量点之间的连接关系,从而形成人脸模型上的向量面与人脸图像上的向量面的一一对应。

根据人脸模型上的向量点之间的连接关系建立人脸图像上的向量点之间的连接关系,例如人脸模型上向量点1、2和3之间互相连接形成一三角面,则相应的人脸图像上的向量点1'、2'和3'之间同样具有相互连接关系,向量点1'、2'和3'形成一三角面。则人脸模型上向量点1、2和3形成的三角面与人脸图像上向量点1'、2'和3'形成的三角面同时建立了对应关系。

需要说明的是,也可以在获取人脸图像及一预设模型之后,根据预设模型上向量点之间的连接关系建立人脸图像上向量点之间的连接关系,由于对预设模型进行调整形成人脸模型时,向量点的数量、每个向量点的标号都不会发生变化,在根据预设模型上向量点之间的连接关系建立人脸图像上向量点之间的连接关系后,可以形成人脸模型上的向量点之间的连接关系与人脸图像上向量点之间的连接关系的对应。

在建立完映射关系后,根据人脸模型上的向量面与人脸图像上的向量面的对应关系,将人脸图像上的向量面内的颜色值填充至相应的人脸模型上的向量面内,完成对人脸模型的纹理贴图处理,生成虚拟人物头像。

本发明实施例根据人脸图像对预设模型进行调整获取与人脸图像匹配的人脸模型,根据建立的人脸模型上的向量面与人脸图像上的向量面的对应关系,以及人脸图像上的向量面内的颜色值,对人脸模型进行纹理贴图处理,形成新的虚拟人物头像。一方面这种方式生成的新的虚拟人物图像可以有效保证与虚拟人物身体各部分的协调,另一方面还能够有效提高虚拟人物头像的逼真度,此外,还可以将形成的新的虚拟人物头像与不同的虚拟人物身体模型结合,形成不同的人物,增强了方案的多样性与可玩性。

下面对根据人脸图像对预设模型进行调整获取与人脸图像匹配的人脸模 型的过程进行详细阐述。

首先采集人脸图像,获取人脸图像中的人脸特征点;

根据人脸特征点标定人脸图像获取面部特征区域;

根据面部特征区域调整预设模型以获取与人脸图像匹配的人脸模型。

人脸特征点可包括用于表征人脸图像中面部轮廓的面部轮廓特征点和用于表征人脸图像中面部器官的面部器官特征点,根据面部轮廓特征点可以确定人脸的形状,根据面部器官特征点可确定各个器官在人脸上的准确位置以及各个器官的形状。

在本发明上述实施例中,根据人脸特征点标定人脸图像获取面部特征区域可包括:

获取面部轮廓特征点和面部器官特征点;

根据面部轮廓特征点和面部器官特征点划定面部特征区域。

通过获取面部轮廓特征点和面部器官特征点来划定面部特征区域,具体的,根据面部轮廓特征点、面部器官特征点来确定人脸包围盒。如图2所示。例如可以在眼部横向中心线上确定P1、P2、P3和P4,其中P1、P2分别为两眼之间相互距离最近的两点,且关于人脸竖直中心线对称,P3、P4分别位于人脸轮廓边缘位置且关于人脸竖直中心线对称,P1和P3位于人脸左侧,在人脸竖直中心线的最下方确定P5,P1、P2属于面部器官特征点,P3、P4和P5属于面部轮廓特征点。根据P1、P2、P3、P4和P5确定一人脸包围盒RTF,定义人脸图像的左上角为坐标(0,0),x轴向右,y轴向下:

RTF.TOP=(P1.y+P2.y)/2

RTF.LEFT=P3.x

RTF.RIGHT=P4.x

RTF.BOTTOM=P5.y

其中,P1.y为P1在y方向上的坐标分量,P2.y为P2在y方向上的坐标分量,P3.x为P3在x方向上的坐标分量,P4.x为P4在x方向上的坐标分量,P5.y为P5在y方向上的坐标分量。

可以理解的是,上述人脸包围盒RTF是通过各特征点的x、y二维坐标予以确定的,即RTF是通过二维坐标予以表征,但本发明不限于此,RTF也可 通过各特征点的三维坐标予以确定,即RTF是通过三维坐标予以表征,这里不做详述。

在本发明上述实施例中,根据面部特征区域调整预设模型以获取与人脸图像匹配的人脸模型可包括:

根据划定的面部特征区域,获得面部特征区域的第二特征值;

根据面部特征区域的第二特征值,从预设的模型库中选择与人脸图像匹配的预设模型,并对预设模型进行调整以获取与人脸图像匹配的人脸模型,或者,根据面部特征区域的第二特征值调整预设模型以获取与人脸图像匹配的人脸模型。

具体的,根据确定的人脸包围盒RTF确定表征面部特征区域的第二特征值,第二特征值为人脸图像的面部特征区域的宽高比值,也可以为人脸图像的面部特征区域的高宽比值,第二特征值为人脸图像的面部特征区域的宽高比值时,第二特征值的计算公式为:

RWHF=(RTF.RIGHT-RTF.LEFT)/(RTF.BOTTOM-RTF.TOP);

第二特征值为人脸图像的面部特征区域的高宽比值时,第二特征值的计算公式为:

RHWF=(RTF.BOTTOM-RTF.TOP)/(RTF.RIGHT-RTF.LEFT)。

本发明实施例中,可以预设一个模型数据库,数据库中包括至少2个模型,例如,由胖到瘦的至少2个模型,在获得第二特征值之后,根据第二特征值首先从预设模型库中选取与人脸图像匹配的预设模型,然后对预设模型进行调整,获取与人脸图像匹配的人脸模型。

当然,在只有一个预设模型的情况下,也可以直接根据面部特征区域的第二特征值,对一预设模型进行调整,获取与人脸图像匹配的人脸模型。

具体的,根据面部特征区域的第二特征值,从预设的模型库中选择与人脸图像匹配的预设模型,并对预设模型进行调整包括:

根据面部特征区域的第二特征值,从预设的模型库中选择满足第一预设条件的模型,作为与人脸图像匹配的预设模型;

第一预设条件包括:模型特征区域的第一特征值与第二特征值的差值小于预设阈值,或者在模型库中的模型中,模型特征区域的第一特征值最接近第二 特征值,或者模型特征区域的第一特征值与第二特征值的比值与1的差值小于预设阈值。本步骤主要是用于在多个预设模型中确定出面部尺寸与人脸图像的面部尺寸相似亦即最接近的预设模型作为人脸模型,当满足第一预设条件时,证明该预设模型与人脸图像的面部寸大致相似,即可将该预设模型确定为与人脸图像匹配的人脸模型。

本领域技术人员可以对第一预设条件进行设定,本发明不做限制。

根据第二特征值和与人脸图像匹配的预设模型的第一特征值,计算第一调整参数,第一调整参数为第二特征值与与人脸图像匹配的预设模型的第一特征值的比值;

根据第一调整参数对预设模型进行调整。

具体的,根据面部特征区域的第二特征值,在预设的模型库中选择一模型,作为与人脸图像匹配的预设模型,其中预设模型需要满足第一预设条件,第一预设条件可以为:模型特征区域的第一特征值与面部特征区域的第二特征值的差值小于预设阈值;或者在模型库中的模型中,模型特征区域的第一特征值最接近面部特征区域的第二特征值。

这里要说明的是,本发明实施例中所述的模型特征区域和面部特征区域是对应的,即模型特征区域在预设模型上的区域和面部特征区域在人脸图像上的区域是相同的,模型特征区域的划定方式是与面部特征区域的划定方式也是相同的,下面会进行详细说明。

可选的,根据面部特征区域的第二特征值调整预设模型包括:

根据第二特征值和预设模型的模型特征区域的第一特征值,计算第一调整参数,第一调整参数为第二特征值与与人脸图像匹配的预设模型的第一特征值的比值;

根据第一调整参数对预设模型进行调整。

该方式为直接根据面部特征区域的第二特征值,对一预设模型进行调整,获取与人脸图像匹配的人脸模型。在此过程中,同样需要计算第一调整参数,然后根据第一调整参数对预设模型进行调整,以获取与人脸图像匹配的人脸模型。

其中第一特征值可以是预先设定的,也可以是通过以下方式获取的:

获取用于表征预设模型中模型轮廓的模型轮廓特征点和用于表征预设模型中模型器官的模型器官特征点;

根据模型轮廓特征点和模型器官特征点划定预设模型的模型特征区域;

根据划定的模型特征区域获得模型特征区域的第一特征值。

通过获取模型轮廓特征点和模型器官特征点来划定模型特征区域,具体为,根据模型轮廓特征点、模型器官特征点来确定人脸模型包围盒RTM,如图3所示,从预设模型上选出如图3所示的五个特征点PM1、PM2、PM3、PM4和PM5,根据这五个特征点确定预设模型的人脸模型包围盒RTM,其中PM1、PM2为模型器官特征点,PM3、PM4和PM5为模型轮廓特征点,其中预设模型的坐标是预先设置的。

RTM.TOP=(PM1.y+PM2.y)/2

RTM.LEFT=PM3.x

RTM.RIGHT=PM4.x

RTM.BOTTOM=PM5.y

其中,PM1.y为PM1在y方向上的坐标分量,PM2.y为PM2在y方向上的坐标分量,PM3.x为PM3在x方向上的坐标分量,PM4.x为PM4在x方向上的坐标分量,PM5.y为PM5在y方向上的坐标分量。

可以理解的是,上述人脸模型包围盒RTM是通过各特征点的x、y二维坐标予以确定的,即RTM是通过二维坐标予以表征,但本发明不限于此,RTM也可通过各特征点的三维坐标予以确定,即RTM是通过三维坐标予以表征,这里不做详述。

在确定人脸模型包围盒RTM,即划定模型特征区域后,根据划定的模型特征区域获得模型特征区域的第一特征值。其中第一特征值的获取方式如下:

根据确定的人脸模型包围盒RTM确定用于表征预设模型尺寸的第一特征值,第一特征值可以为预设模型的模型特征区域的宽高比值,也可以为预设模型的模型特征区域的高宽比值,当第一特征值为预设模型的模型特征区域的宽高比值时,第一特征值的计算公式为:

RWHM=(RTM.RIGHT-RTM.LEFT)/(RTM.BOTTOM-RTM.TOP);

当第一特征值为预设模型的模型特征区域的高宽比值,第一特征值的计算 公式为:

RHWM=(RTM.BOTTOM-RTM.TOP)/(RTM.RIGHT-RTM.LEFT)。

在得到第一特征值后,根据第二特征值与第一特征值的比值计算第一调整参数,当第一特征值为预设模型的模型特征区域的高宽比值RHWM时,相应的第二特征值为人脸图像的面部特征区域的高宽比值RHWF。当第一特征值为预设模型的模型特征区域的宽高比值RWHM时,相应的第二特征值为人脸图像的面部特征区域的宽高比值RWHF。

上述步骤根据面部特征区域的第二特征值,从预设的模型库中选择满足第一预设条件的模型,作为与人脸图像匹配的预设模型,主要是用于在模型库中的多个预设模型中确定出面部尺寸与人脸图像的面部尺寸相似亦即最接近的预设模型作为人脸模型,举例而言,当RHWF和RHWM之间的比值接近1时,证明两者的面部尺寸大致相似,即可将该预设模型确定为与人脸图像匹配的预设模型。同样,当RWHF和RWHM之间的比值接近1时,证明两者的面部尺寸大致相似,即可将该预设模型确定为与人脸图像匹配的预设模型。举例而言,第一预设条件可以为RHWF和RHWM之间的比值(或者RWHF和RWHM的比值)与1之间的差的绝对值不大于一特定值,该特定值可以为0-0.2。

需要说明的是,所有预设模型的第一特征值可以预先计算好,放置在预设模型的数据库中,在获取人脸图像后,利用人脸图像的第二特征值和各预先存储的预设模型的第一特征值,选择与人脸图像匹配的预设模型,进而在对预设模型进行调整,得到人脸模型。

以下实施例以第一特征值为RWHM时,第二特征值为RWHF为例进行阐述,此时第一调整参数r=RWHF/RWHM。

在确定第一调整参数后,根据第一调整参数对预设模型进行调整,包括:

获取预设模型的n个模型向量点,其中,预设模型由n个模型向量点组成;

根据第一调整参数对n个模型向量点的坐标进行伸缩处理获得模型参数坐标。

具体的,获取预设模型的n个模型向量点,根据第一调整参数r对n个模型向量点的坐标进行处理获得模型参数坐标。

举例来讲,对预设模型上所有的模型向量点,在x轴方向上,做r倍的伸 缩,获得模型参数坐标。当然,在本发明一个实施例中,也在x轴和y轴方向,均做r倍的伸缩,获得模型参数坐标。

假定预设模型上的模型向量点为PMi,i=1,2,----,M,对每一个模型向量点做如下运算,得到模型参数坐标:

PMi.x=r*PMi.x

PMi.y=PMi.y

PMi.z=PMi.z

按照该模型参数坐标,对与人脸匹配的预设模型进行调整。

在根据第一调整参数对n个模型向量点的坐标进行伸缩处理获得模型参数坐标后,为了有效提高预设模型与人脸图像的匹配度,从而达到更加逼真的效果,本发明实施例的方法还可包括:

设定一个模型向量点的模型参数坐标为模型初始坐标;

根据模型初始坐标对预设模型的模型轮廓特征点的模型参数坐标进行坐标换算得到模型向量点坐标。

具体的,可以对人脸模型包围盒RTM中的轮廓特征点的模型参数坐标进行换算。

举例说明,如图4所示,取PM1、PM2的中心做为中心点PMCENTER,将PMCENTER设置为模型初始坐标:

PMCENTER.X=(PM1.X+PM2.X)/2.0;PMCENTER.Y=(PM1.Y+PM2.Y)/2.0

根据模型初始坐标对模型轮廓特征点的模型参数坐标进行坐标换算,本实施例以人脸模型包围盒RTM中的人脸模型轮廓特征点为例,对人脸模型轮廓特征点的模型参数坐标进行坐标换算得到模型向量点坐标。如图4所示,人脸模型轮廓特征点包括标号3-17的轮廓特征点,对标号3-17的轮廓特征点的模型参数坐标进行换算,得到模型向量点坐标。

RMHi=(PMi.Y-PMCENTER.Y)/(PM3.Y-PMCENTER.Y)i=3,4---17;

RMWi=(PMi.X-PMCENTER.X)/(PM3.Y-PMCENTER.Y),或者

RMWi=PMi.X/(PM3.Y-PMCENTER.Y)i=3,4---17;

其中,RMHi为任一人脸模型轮廓特征点相对于模型初始坐标的高度,也称为模型向量点坐标的纵向坐标, RMWi为任一人脸模型轮廓特征点相对于模型初始坐标的宽度,也称为模型向量点坐标的横向坐标,PMi.Y为任一人脸模型轮廓特征点在y方向上的坐标分量,PMi.X为任一人脸模型轮廓特征点在x方向的坐标分量,PMCENTER.Y为模型初始坐标在y方向上的坐标分量,PMCENTER.x为模型初始坐标在x方向上的坐标分量。

进一步的,在根据第一调整参数对n个模型向量点的坐标进行伸缩处理获得模型参数坐标后,还可包括:

选取人脸图像上的一个图像向量点的图像坐标作为图像初始坐标;

根据图像初始坐标对人脸图像的面部轮廓特征点的图像坐标进行坐标换算得到图像向量点坐标;

根据图像向量点坐标和模型向量点坐标,对预设模型的模型特征区域进行约束处理。

具体的,可以对人脸包围盒RTF中的轮廓特征点的坐标进行换算。在人脸图像上定义人脸图像的左上角为坐标(0,0),x轴向右,y轴向下,得到的n个图像向量点的坐标即为图像坐标。在n个图像向量点中确定一图像初始坐标,如图5所示,本实施例以P1、P2的中心做为中心点PCENTER,将PCENTER设置为图像初始坐标:

PCENTER.X=(P1.X+P2.X)/2.0;PCENTER.Y=(P1.Y+P2.Y)/2.0

根据图像初始坐标对图像坐标进行坐标变换,本实施例以人脸包围盒RTF中的人脸轮廓特征点为例,对人脸轮廓特征点的图像坐标进行坐标换算得到图像向量点坐标。如图5所示,人脸包围盒RTF包括标号3-15的轮廓特征点。

RHi=(Pi.Y-PCENTER.Y)/(P5.Y-PCENTER.Y)i=3,4---15;

RWi=(Pi.X-PCENTER.X)/(P5.Y-PCENTER.Y),或者

RWi=Pi.X/(P5.Y-PCENTER.Y),i=3,4---15;

其中RHi为任一人脸轮廓特征点相对于图像初始坐标的高度,也称为图像向量点坐标的纵向坐标,RWi为任一人脸轮廓特征点相对于图像初始坐标的宽度,也称为图像向量点坐标的横向坐标,Pi.Y为任一人脸轮廓特征点在y方向上的坐标分量,Pi.X为任一人脸轮廓特征点在x方向的坐标分量,PCENTER.Y为图像初始坐标在y方向上的坐标分量,PCENTER.x为图像初 始坐标在x方向上的坐标分量。

在得到图像向量点坐标和模型向量点坐标后,根据图像向量点坐标和模型向量点坐标,对预设模型的模型特征区域型进行约束处理包括:

选取预设模型的模型特征区域中的一个向量点,根据选取的向量点的模型参数坐标,确定向量点的纵向比值;

根据纵向比值,在模型向量点坐标中确定纵向坐标值与纵向比值最接近的两组模型向量点坐标,根据纵向比值和两组模型向量点坐标,确定预设模型的横向比值,以及,根据纵向比值,在图像向量点坐标中确定纵向坐标值与纵向比值最接近的两组图像向量点坐标,根据纵向比值和两组图像向量点坐标,确定人脸图像的横向比值;

计算人脸图像的横向比值和预设模型的横向比值的比值;

根据比值,对预设模型的模型特征区域的向量点的模型参数坐标进行伸缩处理。

具体为,在人脸模型包围盒RTM中选取一点PM,确定PM的纵向比值RPMH,如图4所示:

RPMH=PM.Y/(PM3.Y-PMCENTER.Y)

在人脸图像上确定与RPMH最近的两个纵向坐标RHi,即RPMH与RHi的值的差值的绝对值最小的两个RHi,即找到两个纵向坐标值与RPMH最接近的图像向量点坐标(RHi,RWi)。

如图5所示,如果PM.X-PMCENTER.X>=0则,在RHi,i=4,5,11,---,15,即人脸图像右半部分的轮廓特征点中,取与RPMH距离最近的两个RHi,该RHi满足如下条件:

RHJ:(RPMH-RHi)>=0&&min(RPMH-RHi)i=4,5,11,---,15

RHQ:(RPMH-RHi)<0&&min(|RPMH–Rhi|)i=4,5,11,---,15

J、Q是得到的值的索引,J、Q是4,5,11,---,15中的两个。J、Q确定后,即同时可以得到RWJ和RWQ。

如果PM.X-PMCENTER.X<0,在RHi,i=3,5,6,---,10,即人脸图像左半部分的轮廓特征点中,取与RPMH距离最近的两个RHi,最后得到的RHJ和RHQ,J、Q是3,5,6,---,10中的两个。J、Q确定后,即同时可 以得到RWJ和RWQ。

根据RHJ、RHQ、RWJ和RWQ确定第一直线方程:

K1=(RHJ–RHQ)/(RWJ–RWQ)、RHJ=B1+K1*RWJ;

将PM的纵向比值RPMH带入第一直线方程RHJ=B1+K1*RWJ,即将RPMH作为RHJ代入该方程,得到横向比值RPMW=(RPMH–B1)/K1,其中RPMH替代RHJ,RPMW替代RWJ。

用上述同样的方法可以在人脸模型上确定与RPMH最近的两个点RMHJ和RMWQ,同时得到RMWJ和RMWQ,这里不再赘述。

根据RMHJ、RMHQ、RMWJ和RMWQ确定第二直线方程:

K2=(RMHJ–RMHQ)/(RMWJ–RMWQ)、RMHJ=B2+K2*RMWJ;

将RPMH带入第二直线方程RMHJ=B2+K2*RMWJ,即将RPMH作为RMHJ代入该方程,得到模型上的横向比值RPMWM=(RPMH–B2)/K2,其中RPMH替代RMHJ,RPMWM替代RMWJ;

计算人脸图像上的横向比值RPMW和模型上的横向比值RPMWM的比值rx,rx=RPMW/RPMWM;

确定PM的最终坐标:

PM.X=rx*PM.X

PM.Y=PM.Y

PM.Z=PM.Z

重复上述步骤,确定人脸模型包围盒RTM中所有点的最终坐标,完成人脸模型包围盒RTM中所有点的调整,进而完成预设模型的调整。

在本发明上述实施例中,需要说明的是,在本发明的一个实施例中,在经过上述步骤后,还可以使用类似的方法,根据人脸图像上的器官对人脸模型上的主要器官进行调整。原理上来讲,上述步骤是对于人脸模型整体的一个调整,即人脸模型胖瘦部分的调整,是根据人脸图像的人脸轮廓来进行调整,接下来,执行对于人脸模型上的器官的调整,可以与前述步骤类似的方法,根据人脸检测出的主要器官的关键点的位置,确定人脸模型上主要器官的变化,从而形成一个与人脸图像匹配的人脸模型。具体可以依据人脸图像的关键点的外包围盒的高宽比和人脸模型的器官模型的关键点的外包围盒的高宽比,来调整人脸模 型上的主要器官,一般情况,人脸模型的主要器官的宽度不变,依据外包围盒的宽高比,对人脸模型上的主要器官的高度进行调整。例如,根据眼睛和嘴巴的外包围盒,和模型的眼睛和嘴巴的外包围盒,进行人脸模型上眼睛和嘴大小的调整。外包围盒的获得方式与前述获得人脸图像和人脸模型的包围盒的步骤相似。

根据面部特征区域调整预设模型以获取与人脸图像匹配的人脸模型,还包括:

从预设模型中获取面部主要器官;

根据第二调整参数对面部主要器官进行调整。

对面部主要器官进行调整主要是通过第二调整参数进行调整,首先需要说明第二调整参数的计算方法:获取人脸图像上的面部主要器官的第三特征值以及预设模型上的面部主要器官的第四特征值;

根据第三特征值和第四特征值的比值,计算第二调整参数。

需要说明的是,可以从前述已经进行过调整的人脸模型中获取面部主要器官,也可以从确定出的与人脸图像匹配的、尚未进行调整的人脸模型中获取面部主要器官,这种情况下,前述的调整可以是对抠除了面部主要器官的人脸模型所进行的调整,当然也可以是对未抠除面部主要器官的人脸模型所进行的调整。可以理解的是,在预先建立预设模型的数据库时,可以将模型上的面部主要器官的相关数据一并存储,例如,面部器官的高宽比或宽高比等,在使用时直接查询数据库获得数据。

第三特征值为人脸图像的面部主要器官的宽高比值,第四特征值为预设模型的面部主要器官的宽高比值;或者

第三特征值为人脸图像的面部主要器官的高宽比值,第四特征值为预设模型的面部主要器官的高宽比值。

如图6所示,从人脸模型中获取面部主要器官,在获取的面部主要器官上选取面部器官特征点,根据面部器官特征点获取人脸模型面部器官包围盒RT_ORGAN,并根据获取的人脸模型面部器官包围盒RT_ORGAN来确定预设模型面部器官的高宽比RHW_ORGAN和/或宽高比RWH_ORGAN。当然,该高宽比RHW_ORGAN和宽高比RWH_ORGAN可以是预先存储好的。

以嘴为例进行说明:

RHW_MOUTH=(RT_MOUTH.BOTTOM-RT_MOUTH.TOP)/(RT_MOUTH.RIGHT-RT_MOUTH.LEFT)

RWH_MOUTH=(RT_MOUTH.RIGHT-RT_MOUTH.LEFT)/(RT_MOUTH.BOTTOM-RT_MOUTH.TOP);

RHW_MOUTH为预设模型嘴部高宽比,RWH_MOUTH为预设模型嘴部宽高比,RT_MOUTH.BOTTOM为人脸模型嘴部包围盒下顶点,RT_MOUTH.TOP为人脸模型嘴部包围盒上顶点,RT_MOUTH.RI GHT为人脸模型嘴部包围盒右顶点,RT_MOUTH.LEFT为人脸模型嘴部包围盒左顶点。

具体的,如图7所示,在人脸图像上获取面部主要器官,在获取的面部主要器官上选取面部器官特征点,根据面部器官特征点获取人脸面部器官包围盒FRT_ORGAN,并根据获取的人脸面部器官包围盒FRT_ORGAN来确定人脸面部器官的高宽比FRHW_ORGAN和宽高比FRWH_ORGAN。

以嘴为例进行说明:

FRHW_MOUTH=(FRT_MOUTH.BOTTOM-FRT_MOUTH.TOP)/(FRT_MOUTH.RIGHT-FRT_MOUTH.LEFT);

FRWH_MOUTH=(FRT_MOUTH.RIGHT-FRT_MOUTH.LEFT)/(FRT_MOUTH.BOTTOM-FRT_MOUTH.TOP);

FRHW_MOUTH为人脸图像嘴部高宽比,FRWH_MOUTH为人脸图像嘴部宽高比,FRT_MOUTH.BOTTOM为人脸图像嘴部包围盒下顶点,FRT_MOUTH.TOP为人脸图像嘴部包围盒上顶点,FRT_MOUTH.RI GHT为人脸图像嘴部包围盒右顶点,FRT_MOUTH.LEFT为人脸图像嘴部包围盒左顶点。

然后,根据人脸图像嘴部宽高比FRWH_MOUTH和人脸模型嘴部宽高比RWH_MOUTH,确定两者的比值R1=FRWH_MOUTH/RWH_MOUTH;

根据人脸图像嘴部高宽比FRHW_MOUTH和人脸模型嘴部高宽比RHW_MOUTH,确定两者的比值R2=FRHW_MOUTH/RHW_MOUTH。

其中,R1或R2即作为第二调整参数。

具体的,一个实施例中,根据第二调整参数对预设模型的面部主要器官进行调整,包括:

获取预设模型的面部主要器官的m个器官向量点,其中面部主要器官由m个器官向量点组成;

根据第二调整参数对m个器官向量点的坐标进行处理获得器官参数坐标。

获取预设模型面部主要器官的m个器官向量点后,根据R1来调整预设模型上面部器官特征点的坐标,在x方向上做R1倍的伸缩。

在x方向做R1倍的伸缩后,将伸缩后的向量点坐标称为器官参数坐标。

具体的,在本发明的一个实施例中,根据第二调整参数对预设模型的面部主要器官进行调整包括:

获取预设模型面部主要器官的m个器官向量点;

选取一个器官向量点作为器官初始坐标;

根据器官初始坐标和第二调整参数对m个器官向量点的当前坐标进行坐标换算。

其中,根据器官初始坐标所处理的当前坐标可以是器官参数坐标,也可以未经过X方向上的伸缩的原始坐标。当所处理的坐标可以是器官参数坐标或原始坐标时,对器官参数坐标或原始坐标进行坐标换算得到器官向量点坐标。

具体的,在人脸模型上标定面部主要器官上的任意一点为PMMi(i=1,2,------,N),确定面部器官初始坐标为PCENTER1;

PCENTER1.x=(RT_ORGAN.RIGHT+RT_ORGAN.LEFT)/2

PCENTER1.y=(RT_ORGAN.BOTTOM+RT_ORGAN.TOP)/2,其中PCENTER1.x为PCENTER1在x方向上的坐标分量,PCENTER1.y为PCENTER1在y方向上的坐标分量,RT_ORGAN.RIGHT为RT_ORGAN的右顶点,RT_ORGAN.LEFT为RT_ORGAN的左顶点,RT_ORGAN.BOTTOM为RT_ORGAN的下顶点,RT_ORGAN.TOP为RT_ORGAN的上顶点;

然后,根据R2和器官初始坐标确定人脸模型上面部主要器官的所有相量点的器官向量点坐标,完成面部主要器官的所有点的调整,形成人脸模型。

PMMi.x=PMMi.x

PMMi.y=PCENTER1.y+R 2*(PMMi.y–PCENTER1.y)

PMMi.z=PMMi.z,其中PMMi.x为PMMi在x方向上的坐标分量,其中PMMi.y为PMMi在y方向上的坐标分量,其中PMMi.z为PMMi在z方向上 的坐标分量。

通过上述方式,即可获得与人脸图像匹配的人脸模型。

在获取一与人脸图像匹配的人脸模型后,本发明实施例还需要根据人脸图像对人脸模型进行纹理贴图处理,生成虚拟人物头像。具体的,本发明实施例中,首先需要建立人脸模型上的向量点与人脸图像上的向量点的映射关系,具体可根据所述人脸模型上的向量点坐标和所述人脸图像上的向量点坐标,建立所述人脸模型和所述人脸图像的向量点的映射关系,其中,可以理解的是,人脸模型上的向量点坐标即为前述步骤调整后的得到的人脸模型的向量点的当前坐标,从而使得人脸模型上的向量面与人脸图像上的向量面一一对应;然后根据人脸图像上的向量面内的颜色值,以及人脸模型上的向量面与人脸图像上的向量面的对应关系,对人脸模型进行纹理贴图处理,生成虚拟人物头像。

其中,由于前述步骤中已经对人脸模型进行了调整,因此,人脸模型的高宽比与人脸图像的高宽比是相同的,因此,可将模型上的向量点映射到图像上,从而建立人脸模型上的向量点与人脸图像上的向量点的映射关系。

根据人脸模型上的向量点之间的连接关系建立人脸图像上的向量点之间的连接关系,从而形成人脸模型上的向量面与人脸图像上的向量面的一一对应。

根据人脸模型上的向量点之间的连接关系建立人脸图像上的向量点之间的连接关系,例如人脸模型上向量点1、2和3之间互相连接形成一三角面,则相应的人脸图像上的向量点1'、2'和3'之间同样具有相互连接关系,向量点1'、2'和3'形成一三角面。则人脸模型上向量点1、2和3形成的三角面与人脸图像上向量点1'、2'和3'形成的三角面同时建立了对应关系。

需要说明的是,也可以在获取人脸图像及一预设模型之后,根据预设模型上向量点之间的连接关系建立人脸图像上向量点之间的连接关系,由于对预设模型进行调整形成人脸模型时,向量点的数量、每个向量点的标号都不会发生变化,在根据预设模型上向量点之间的连接关系建立人脸图像上向量点之间的连接关系后,可以形成人脸模型上的向量点之间的连接关系与人脸图像上向量点之间的连接关系的对应。

在建立完映射关系后,根据人脸模型上的向量面与人脸图像上的向量面的对应关系,将人脸图像上的向量面内的颜色值填充至相应的人脸模型上的向量 面内,完成对人脸模型的纹理贴图处理,生成虚拟人物头像。

在本发明的一个实施例中,根据人脸图像上的向量面内的颜色值,以及人脸模型上的向量面与人脸图像上的向量面的对应关系,对人脸模型进行纹理贴图处理,生成虚拟人物头像具体包括:

根据人脸模型创建一空白纹理;其中,空白纹理的向量面是与人脸模型上的向量面一一对应的,进而与人脸图像上的向量面也是一一对应的。

获取人脸图像上的向量面内的颜色值,根据人脸模型上的向量面与人脸图像上的向量面的对应关系,将人脸图像上的向量面内的颜色值设置到空白纹理的对应向量面内,形成一纹理贴图;

将纹理贴图与人脸模型进行贴合处理,形成虚拟人物头像。

具体的,根据人脸模型创建一由多个向量面组成的空白纹理,这里的向量面优选三角面,其中空白纹理的各个向量面与人脸模型的各个向量面一一对应。在创建空白纹理后,获取人脸图像上各个向量面内的颜色值。可选的,可对人脸图像上各个向量面内的颜色值计算平均值,获取计算得到的各个向量面内的平均颜色值,将该平均颜色值作为人脸图像上各个向量面内的颜色值。具体的,可获取各个向量面内的各个像素的颜色值,然后,对这些颜色值进行平均值计算。然后,根据预先建立的人脸模型上的向量面与人脸图像上的向量面的对应关系,将获取的人脸图像上的向量面内的平均颜色值设置到空白纹理的对应向量面内,形成一纹理贴图,然后将纹理贴图与人脸模型进行贴合处理,形成虚拟人物头像。具体实现中,可以创建一个数组FaceColor[]来保存人脸图像上每个向量面的颜色值,数组的大小与人脸模型的向量面以及人脸图像的向量面的个数相同,即FaceColor[i]=Ci,i=0,1,---,N-1;N为模型三角面的个数,Ci为各个向量面的颜色值。

在本发明的一个实施例中,为了简化运算数量同时保证虚拟人物图像的逼真度和协调性,针对人脸上的面部主要器官,采用上述实施例的空白纹理贴图处理,而对于除了主要器官之外的人脸部分,可采用赋值的方法,即为这些部分设置颜色值,从而生成虚拟人物头像。其中,所设置的颜色值可以是预先设定的,也可以是根据人脸图像确定的。

具体实施中,在本发明的一个实施例中,方法还包括:

将获取的与人脸图像匹配的人脸模型进行拆分,拆分后的人脸模型包括第一类分模型和第二类分模型,并记录第一类分模型上的向量面与人脸模型上的向量面的对应关系以及第二类分模型上的向量面与人脸模型上的向量面的对应关系;

这时,在根据人脸图像上的向量面内的颜色值,以及人脸模型上的向量面与人脸图像上的向量面的对应关系,对人脸模型进行纹理贴图处理时,首先同样根据人脸模型创建一空白纹理,空白纹理上的向量面与人脸模型上的向量面相对应,然后,针对第一类分模型,利用与上述实施例类似的方法,根据人脸模型上的向量面与人脸图像上的向量面的对应关系,以及记录的第一类分模型上的向量面与人脸模型上的向量面的对应关系,获取人脸图像上的与第一类分模型对应的向量面内的颜色值,并将人脸图像上的与第一类分模型对应的向量面内的颜色值设置到空白纹理的与第一类分模型对应的向量面内。举例来说,第一类分模型可以至少包括器官模型,例如器官模型可以包括如图8所示的面颊模型,眉毛模型,眼睛模型和嘴模型,眉毛模型、眼睛模型和嘴模型如图9-11所示。这类分模型的颜色差别较大,因此,按照人脸图像上的第一类分模型对应的向量面的颜色值设置人脸模型上的第一类分模型的向量面内的颜色值,可以有效保证人脸模型的逼真度和协调性。

而本实施例中第二类分模型与人脸图像上颜色区别不大的区域相对应,人脸图像上每个第二类分模型对应的区域上的颜色值基本相似,因此,可以为每个第二类分模型设置一个颜色值,将该颜色值设置到空白纹理的对应向量面内,具体可以采用如下几种方式:

其一,利用人脸图像上与第一类模型中的第一器官模型对应的向量面的颜色来确定第二类分模型的向量面的颜色值,该第一器官模型例如为脸颊模型。这是因为,脸颊部分的颜色比较均衡,接近脸部的其他区域。具体的,根据人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值,确定第二类分模型的向量面内的颜色值;根据记录的第二类分模型上的向量面与人脸模型上的向量面的对应关系,将确定的第二类分模型的向量面内的颜色值设置到空白纹理的与第二类分模型对应的向量面内。本发明实施例对如何根据人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值,确定第二类分模型的向 量面内的颜色值不做限定,本领域技术人员可以进行选择。具体的,在第二类分模型包括N个,其中N大于等于1的情况下,可以提取人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值;将提取的颜色值转化为灰度值;提取灰度值的最高值对应的颜色值和灰度值的最低值对应的颜色值;根据灰度值的最高值对应的颜色值和灰度值的最低值对应的颜色值,确定N个第二类分模型的向量面内的颜色值。举例说明,假设灰度值最低的颜色值为C1,灰度值最高的颜色值为C2,有N个第二类分模型,可以按照N个第二类分模型的亮度要求,根据C1和C2确定各个第二类分模型的颜色值。例如,亮度要求最高的第二类分模型的向量面内的颜色值为C2,按照步长递减(C2-C1)/(N-1),最低的第二类分模型的向量面内的颜色值为C1,以此类推。本发明实施例对如何根据C1和C2确定第二类分模型的向量面颜色值不做限定,本领域技术人员可以进行选择。

其二,预先设定好第二类分模型上的向量面的颜色值,本领域技术人员可以根据人脸数据的统计结果和经验值等进行预先设置,根据记录的第二类分模型上的向量面与人脸模型上的向量面的对应关系,将预先设置的第二类分模型的向量面内的颜色值设置到空白纹理的与第二类分模型对应的向量面内。

其三,在第二类分模型包括N个,其中N大于等于1的情况下,在人脸图像上获取N个颜色值,将获取的N个颜色值转化为N个灰度值;对N个灰度值按照灰度由大到小的顺序进行排序,获得与N个灰度值对应的依次排列的N个颜色值;按照N个第二类分模型的亮度顺序,将依次排列的N个颜色值分别一一对应到N个第二类分模型,分别确定为N个第二类分模型的向量面内的颜色值;根据记录的第二类分模型上的向量面与人脸模型上的向量面的对应关系,将确定的第二类分模型的向量面内的颜色值设置到空白纹理的与第二类分模型对应的向量面内。其中,N个第二类分模型的亮度顺序可以是预先设定好的,也可以是根据人脸图像的相应区域确定的。

在设置了空白纹理中的第一类分模型和第二类分模型对应的向量面的颜色值后,形成了一张纹理贴图,将所形成的纹理贴图与人脸模型进行贴合处理,从而形成虚拟了人物头像。

需要说明的是,本发明实施例中,人脸图像上的向量面内的颜色值均可以 是该向量面内的像素颜色的平均值。

以下通过一个具体的实施例进行详细说明:

首先,将人脸模型上的向量点映射到人脸图像上,从而形成人脸图像上的向量面与人脸模型上的向量面上的一一对应关系。

具体的,由于人脸图像的RHWF与与人脸图像匹配的人脸模型的高宽比RHWM是相同的,r=(RTF.BOTTOM-RTF.TOP)/(RTM.BOTTOM-RTM.TOP)=(RTF.RIGHT-RTF.LEFT)/(RTM.RIGHT-RTM.LEFT);将模型上的向量点映射到图像上,其方法为:

对于模型上任意一点PM,其在图像上的坐标PI为

PI.X=PCENTER.X+r*(PM.X-PMCENTER.X)

PI.Y=PCENTER.Y+r*(PM.Y-PMCENTER.Y)

参见图15,图15为依据人脸模型的三角面(向量面)映射到人脸图像上的示意图。

在人脸模型的基础上对模型进行拆分,拆分为两类分模型,第一类分模型和第二类分模型。分模型的作用是为了标定特殊纹理的位置。分模型的分割原则是依据人脸的特征,及人脸颜色的一般规律。本实施例中,第一类分模型包括器官模型,具体为眉毛模型,眼睛模型,嘴模型,脸部主要部分模型(脸颊模型),其中,脸颊模型如图8所示,眉毛模型、眼睛模型和嘴模型如图9-11所示。第二类分模型包括与头部轮廓对应的第一模型,与眼周对应的第二模型和与额头和颧骨对应的第三模型。第一至第三模型分别如图12~图14所示。第一类分模型和第二类分模型相加组成了一完整的人脸模型。

将分出来的模型与人脸模型匹配,记录下各个分模型在人脸模型上的位置,即记录了分模型的向量面与人脸模型的向量面的对应关系。

假设人脸模型上有M个向量点,点的集合为V,向量点可表示为Pi,i=0,1,2------,M-1;同时人脸模型上有N个向量面,向量面的集合为F,向量面可表示为Fi,i=0,1,2------,N-1;向量面优选三角面,每个三角面由三个向量点组成。

分模型都是人脸模型的子集,假如分拆后有K个分模型,对任意分模型,假如模型上有Mj,j=1,2,---,K个向量点,点的集合为Vj,j=1,2, ---,K;其上任意一点为Pjm,m=0,1,2,-----,Mm-1;并且Mm<M;即Vj是V的子集;同时分模型上有Nj个向量面,向量面的集合为Fn,n=0,1,2------,Nn-1;同样,其中任意一个向量面为Fjn,n=0,1,2,-----,Nn-1;

对于每一个分模型,都需要有两个数组记录该分模型与人脸模型向量点的对应和向量面的对应。记录对应向量点的数组为Vj[Mj]j=1,2,---,K,数组的长度为Mj;记录对应向量面的数组为Fj[Nj]j=1,2,---,K,数组的长度为Nj.记录方法如下:

从分模型中任意取一点Pjm j=1,2,---,K m=0,1,2,-----,Mm-1(第j个模型,第m个点),与人脸模型中的向量点Pi,i=0,1,2------,M-1;进行比较,如果Pjm.x==Pi.x并且Pjm.y==Pi.y并且Pjm.z==Pi.z,

则Vj[m]=i,i=0,1,2------,M-1。

从分模型中任意取一个向量面Fjn j=1,2,---,K;n=0,1,2,-----,Nn-1;与人脸模型中的向量面Fi进行比较,如果组成向量面Fjn的向量点与向量面Fi组成的向量点相同,

则Fj[n]=i j=1,2,---,K;i=0,1,2------,N-1;n=0,1,2,-----,Nn-1。

生成一个与人脸模型对应的空白纹理,向量面与人脸模型上的向量面相对应。

对第一类分模型,可以获取人脸图像上相应向量面中的颜色值,将该颜色值设置在空白纹理上的与第一类分模型对应的向量面上。

为了对分模型上的向量面进行纹理贴图处理,可以建立用于保存向量面的颜色值的数组。具体的,与面颊模型、眉毛模型、眼睛模型和嘴模型对应的人脸图像上的用于保存各个向量面颜色的数组分别为:Fface[Nface]、Fbrow[Nbrow],Feye[Neye]和眼Fmouth[Nmoith],将人脸图像上对应向量面的颜色值保存在这些数组里,然后根据读取这些数组中的颜色值,形成纹理贴图,即将颜色值填充到空白纹理上,亦即将这些值赋予空白纹理的向量面颜色值数组中,形成纹理贴图,进而将贴图贴合到人脸模型上,从而将颜色值赋予到人脸模型上的面部主要部分模型、眉毛模型、眼睛模型和嘴模型的向量面内:

FaceColorD[Fface[i]]=FaceColorS[Fface[i]]i=0,1,----,Nface-1;

FaceColorD[Fbrow[i]]=FaceColorS[Fbrow[i]]i=0,1,----,Nbrow-1;

FaceColorD[Feye[i]]=FaceColorS[Feye[i]]i=0,1,----,Neye-1;

FaceColorD[Fmouth[i]]=FaceColorS[Fmouth[i]]i=0,1,----,Nmouth-1。

其中,FaceColorD[]为空白纹理的向量面的颜色值数组,FaceColorS[]为人脸模型上的向量面的颜色值数组。

针对第二类分模型,对于利用人脸图像上与脸颊模型对应的向量面的颜色来确定第二类分模型的向量面的颜色值。

在面部主要部分模型对应的人脸图像上的数组Fface[Nface]中选出颜色最暗的颜色值C1,颜色最亮的颜色值C2并计算二者的平均值C3。

其中选择的方法如下:

将数组Fface[Nface]中的颜色值转化为灰度值:

如颜色值Ci=Fface[i]i=0,1,----,Nface-1;

则灰度值Di=0.299*Ci.r+0.587*Ci.g+0.114*Ci.b,i=0,1,----,Nface-1;

在Di中找出这些灰度值的最小值Dmin和最大值Dmax,并记录下此时的颜色值Cmin和Cmax,

所以C1=Cmin

C2=Cmax

C3=(C1+C2)/2

对于第一模型,第二模型和第三模型的数组分别为Fpart1[Npart1],Fpart2[Npart2]和Fpart3[Npart3]。按照三个模型的亮度顺序,其中第一模型的亮度最低,第二模型的亮度中等,第三模型的亮度最高。

则有

FaceColorD[Fpart1[i]]=C1 i=0,1,----,Npart1-1;

FaceColorD[Fpart2[i]]=C3 i=0,1,----,Npart3-1;

FaceColorD[Fpart3[i]]=C2 i=0,1,----,Npart2-1。

颜色数组FaceColorD被设置完成后,再对空白纹理进行颜色的设置。

将FaceColorD[i]的颜色值Ci赋给所有的空白纹理与其对应的向量面上的 所有像素点。此处i=0,1,----,N-1。

对空白纹理设置完颜色值后,形成了纹理贴图,在依据图形图像学里的方式,对模型进行纹理贴图,从而完成人脸模型的纹理贴图处理。

具体的,所生成的人脸模型可如图16所示。

在本发明上述实施例中,建立人脸模型上的向量点与人脸图像上的向量点的映射关系,从而使得人脸模型上的向量面与人脸图像上的向量面一一对应,具体为:

根据人脸模型上的向量点之间的连接关系建立人脸图像上的向量点之间的连接关系,从而形成人脸模型上的向量面与人脸图像上的向量面的一一对应。

根据人脸模型上的向量点之间的连接关系建立人脸图像上的向量点之间的连接关系,例如人脸模型上向量点1、2和3之间互相连接形成一三角面,则相应的人脸图像上的向量点1、2和3之间同样具有相互连接关系,向量点1、2和3形成一三角面。则人脸模型上向量点1、2和3形成的三角面与人脸图像上向量点1、2和3形成的三角面同时建立了对应关系。

需要说明的是,也可以在获取人脸图像及一预设模型之后,根据预设模型上向量点之间的连接关系建立人脸图像上向量点之间的连接关系,由于对预设模型进行调整形成人脸模型时,向量点的数量、每个向量点的标号都不会发生变化,在根据预设模型上向量点之间的连接关系建立人脸图像上向量点之间的连接关系后,可以形成人脸模型上的向量点之间的连接关系与人脸图像上向量点之间的连接关系的对应。

本发明实施例提供一种人脸贴图处理装置,包括:

获取调整模块,用于获取人脸图像及一预设模型,根据人脸图像对预设模型进行调整,获取一与人脸图像匹配的人脸模型;

建立模块,用于建立人脸模型上的向量点与人脸图像上的向量点的映射关系,从而使得人脸模型上的向量面与人脸图像上的向量面一一对应;

处理生成模块,用于根据人脸图像上的向量面内的颜色值,以及人脸模型上的向量面与人脸图像上的向量面的对应关系,对人脸模型进行纹理贴图处理,生成虚拟人物头像。

其中,处理生成模块可包括:

创建子模块,用于根据人脸模型创建一空白纹理,空白纹理上的向量面与人脸模型上的向量面相对应;

处理子模块,用于获取人脸图像上的向量面内的颜色值,根据人脸模型上的向量面与人脸图像上的向量面的对应关系,将人脸图像上的向量面内的颜色值设置到空白纹理的对应向量面内,形成一纹理贴图;

贴合子模块,用于将纹理贴图与人脸模型进行贴合处理,形成虚拟人物头像。

其中,在本发明一个实施例中,装置还包括:

拆分模块,用于将获取的与人脸图像匹配的人脸模型进行拆分,拆分后的人脸模型包括第一类分模型和第二类分模型;

记录模块,用于记录第一类分模型上的向量面与人脸模型上的向量面的对应关系以及第二类分模型上的向量面与人脸模型上的向量面的对应关系;

则,处理生成模块具体用于:

根据人脸模型创建一空白纹理,空白纹理上的向量面与人脸模型上的向量面相对应;

根据人脸模型上的向量面与人脸图像上的向量面的对应关系,以及记录的第一类分模型上的向量面与人脸模型上的向量面的对应关系,获取人脸图像上的与第一类分模型对应的向量面内的颜色值,并将人脸图像上的与第一类分模型对应的向量面内的颜色值设置到空白纹理的与第一类分模型对应的向量面内;

将设置了颜色值的空白纹理所形成的纹理贴图与人脸模型进行贴合处理,形成虚拟人物头像。

具体的,第一类分模型至少包括器官模型。

进一步的,器官模型包括第一器官模型;

处理生成模块还用于:

根据人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值,确定第二类分模型的向量面内的颜色值;

根据记录的第二类分模型上的向量面与人脸模型上的向量面的对应关系, 将确定的第二类分模型的向量面内的颜色值设置到空白纹理的与第二类分模型对应的向量面内。

具体的,第二类分模型包括N个,其中N大于等于1;

处理生成模块用于:

提取人脸图像上的与第一器官模型的向量面对应的向量面内的颜色值;

将提取的颜色值转化为灰度值;

提取灰度值的最高值对应的颜色值和灰度值的最低值对应的颜色值;

根据灰度值的最高值对应的颜色值和灰度值的最低值对应的颜色值,确定N个第二类分模型的向量面内的颜色值。

具体的,第二类分模型包括N个,其中N大于等于1;

处理生成模块用于:

根据记录的第二类分模型上的向量面与人脸模型上的向量面的对应关系,将预先设置的第二类分模型的向量面内的颜色值设置到空白纹理的与第二类分模型对应的向量面内。

具体的,第二类分模型包括N个,其中N大于等于1;

处理生成模块用于:

在人脸图像上获取N个颜色值,将获取的N个颜色值转化为N个灰度值;

对N个灰度值按照灰度由大到小的顺序进行排序,获得与N个灰度值对应的依次排列的N个颜色值;

按照N个第二类分模型的亮度顺序,将依次排列的N个颜色值分别一一对应到N个第二类分模型,分别确定为N个第二类分模型的向量面内的颜色值;

根据记录的第二类分模型上的向量面与人脸模型上的向量面的对应关系,将确定的第二类分模型的向量面内的颜色值设置到空白纹理的与第二类分模型对应的向量面内。

可选的,建立模块具体用于:

根据人脸模型上的向量点之间的连接关系建立人脸图像上的向量点之间的连接关系,从而形成人脸模型上的向量面与人脸图像上的向量面的一一对应。

其中,人脸图像上的向量面内的颜色值包括人脸图像上的向量面内的颜色 平均值。

本发明实施例人脸贴图处理方法,通过获取人脸图像的人脸特征点,利用人脸特征点对预设模型进行调整,获取与人脸匹配的3d人脸模型,并通过处理人脸图像,利用人脸图像的向量面与人脸模型的向量面的对应关系,形成,形成新的纹理贴图,将新的纹理贴图与人脸模型匹配,形成新的虚拟人物头像,一方面这种方式生成的新的虚拟人物图像可以有效保证所生成的新的人物头像与虚拟人物身体各部分的协调,另一方面还能够将形成的新的人物头像与不同的虚拟人物身体模型结合,形成不同的人物,提高趣味性。本发明实施例方案简单,人工处理量小,适用于要求简单且快速的建模需求。

需要说明的是,本发明实施例提供的人脸贴图处理装置是应用上述方法的装置,则上述方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1