图像处理方法及图像处理装置、存储介质与流程

文档序号:16846682发布日期:2019-02-12 22:22阅读:227来源:国知局
图像处理方法及图像处理装置、存储介质与流程

本发明涉及图像处理技术,尤其涉及一种实现二维(2dimensional,2d)/三维(3d)图像转换的图像处理方法及图像处理装置、存储介质。



背景技术:

相关技术中,三维模型已经应用于各种不同的领域。在医疗行业使用三维模型制作器官的精确模型;电影行业将三维模型用于活动的人物、物体以及现实电影;视频游戏产业将三维模型作为计算机与视频游戏中的资源;在科学领域将三维模型作为化合物的精确模型;建筑业将三维模型用来展示提议的建筑物或者风景表现;工程界将三维模型用于设计新设备、交通工具、结构以及其它应用领域。

目前,三维人物模型在人脸肤色的计算上,主要采用理想光照数学模型并逼近真实人物肤色的效果渲染算法。然而,真实人脸拍照的光照模型会非常复杂,导致使用理想光照数学模型计算出来的人脸肤色值,与照片上的肤色有一定的差异。



技术实现要素:

有鉴于此,本发明实施例为解决相关技术中存在的问题而提供一种图像处理方法及图像处理装置、存储介质。

本发明实施例的技术方案是这样实现的:

第一方面,本发明实施例提供一种图像处理方法,包括:

将图像中的特征点映射到三维模型中的特征点,形成所述图像中像素点与所述三维模型中三维点的第一映射关系;

根据所述第一映射关系,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点;

根据所述三维模型中三维点、与所述三维模型的纹理像素点的第二映射关系,确定所述各网格的顶点在所述三维模型中所映射的纹理像素点;

根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转换,以及,

对各网格的顶点所映射的纹理像素点之间进行插值处理。

第二方面,本发明实施例提供一种图像处理装置,包括:

映射模块,用于将图像中的特征点映射到三维模型中的特征点,形成所述图像中像素点与所述三维模型中三维点的第一映射关系;

第一确定模块,用于根据所述第一映射关系,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点;

第二确定模块,用于根据所述三维模型中三维点、与所述三维模型的纹理像素点的第二映射关系,确定所述各网格的顶点在所述三维模型中所映射的纹理像素点;

颜色转移模块,用于根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转换,以及,对各网格的顶点所映射的纹理像素点之间进行插值处理。

第三方面,本发明实施例提供一种图像处理装置,包括:

存储器,配置为存储可执行程序;

处理器,配置为通过执行所述存储器中存储的可执行程序时实现以下操作:

将图像中的特征点映射到三维模型中的特征点,形成所述图像中像素点与所述三维模型中三维点的第一映射关系;

根据所述第一映射关系,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点;

根据所述三维模型中三维点、与所述三维模型的纹理像素点的第二映射关系,确定所述各网格的顶点在所述三维模型中所映射的纹理像素点;

根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转换,以及,

对各网格的顶点所映射的纹理像素点之间进行插值处理。

第四方面,本发明实施例提供一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时实现以下操作:

将图像中的特征点映射到三维模型中的特征点,形成所述图像中像素点与所述三维模型中三维点的第一映射关系;

根据所述第一映射关系,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点;

根据所述三维模型中三维点、与所述三维模型的纹理像素点的第二映射关系,确定所述各网格的顶点在所述三维模型中所映射的纹理像素点;

根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转换,以及,

对各网格的顶点所映射的纹理像素点之间进行插值处理。

本发明实施例在采用预先方式将图像生成三维模型的基础上,通过对三维模型的网格顶点进行颜色重建,及其利用重建后的三维模型的网格的颜色值以网格为单位进行颜色插值处理,从能够在有效实现颜色过度平滑的基础上,生成贴近于图像本身的纹理贴图,有效提高三维模型如三维模型中对象纹理计算的真实感。

附图说明

图1-1示出本发明实施例提供的三维坐标空间的一个可选的示意图;

图1-2示出本发明实施例提供的设备的屏幕坐标系与三维坐标空间的原点重合的一个可选的示意图;

图1-3示出本发明实施例提供的纹理空间的一个可选的示意图;

图1-4示出本发明实施例提供的各网格的顶点在图像中映射的目标像素点的纹理坐标的示意图;

图1-5示出本发明实施例提供的线性插值的一个可选的示意图;

图2示出本发明实施例提供的图像处理系统的一个可选的架构示意图;

图3-1示出本发明实施例提供的图像处理方法的实现流程示意图一;

图3-2示出本发明一示例中人物a三维模型中各组成部分示意图;

图3-3示出本发明一示例中生成贴近于图像本身的纹理贴图的显示效果图;

图4-1示出本发明实施例提供的图像处理方法的实现流程示意图二;

图4-2示出本发明实施例人体二维图像及其三维模型中各组成部分示意图;

图4-3示出本发明实施例人脸图像特征点标记示意图;

图4-4示出本发明实施例确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点的纹理坐标的示意图;

图5-1示出本发明实施例提供的图像处理方法的实现流程示意图三;

图5-2示出本发明实施例从人脸二维图像到人脸纹理的显示效果图;

图6示出本发明实施例提供的图像处理装置的组成结构示意图;

图7为示出本发明实施例提供的用于图像处理装置的一个可选的硬件结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。

对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

1)图像,本文中指采集的包括各种对象(如人、物等)成像的数字化图像色。

2)纹理,三维模型中表示的对象(如人、物体)表面的一层花纹,例如木纹、布纹、人体和动物的皮肤和商标图案等,用于控制对象表面的特性,即质感;三维模型中纹理的基本元素是纹理像素(纹理元素)点,纹理像素点在纹理具有两个要素:

2.1)纹理坐标,表示纹理像素点在纹理中的位置,位置可以被认为是一个列(column)和行(row)的值,它们分别由u和v来表示;

例如,纹理坐标是(0.5,0.0),表示纹理像素点的颜色值是位于纹理中横向二分之一的位置、纵向的起始位置的颜色值。

2.2)颜色值,即纹理像素点的颜色信息,如使用各种颜色空间(rgb/yuv)表示的颜色。

3)特征点,图像中能够反映对象的局部特征的点,一般为多个像素点的集合,以人脸图像为例,特征点可以是眼睛特征点和鼻子特征点等具有可辨识性的区域。

4)三维模型,对于描述对象的在三维空间成像的特征,包括几何分布和纹理;涉及两个空间:

4.1)三维坐标空间,图1-1示出本发明实施例提供的三维坐标空间的一个可选的示意图,用于描述三维模型中各个三维点的位置分布,采用(x,y,z)这样的三维坐标的形式,三维模型的表面是由基于顶点的多个网格(如三角形、四边形等多边形)连接形成。

以在设备中调用开放图形库(opengl,opengraphicslibrary)渲染三维模型为例,opengl可以使用图1-1示出的三维坐标空间,各坐标轴的最大与最小值对应为1和-1(经过归一化处理以计算方便)。一般地,会把设备的屏幕坐标系与上述三维坐标空间的原点重合,图1-2示出本发明实施例提供的设备的屏幕坐标系与上述三维坐标空间的原点重合的一个可选的示意图,矩形为屏幕的区域,调用opengl的绘制方法会把三维模型中各网格的顶点组合成图形渲染在屏幕上。

4.2)纹理空间,图1-3示出本发明实施例提供的纹理空间的一个可选的示意图,使用(u,v)形式标定纹理像素点在纹理中的位置,每个纹理像素点与三维模型表面的网格的一个顶点(也就是三维点)形成映射关系,用于描述映射到该顶点的像素纹理点在纹理中的位置。

例如,(u,v)对应表示与顶点具有映射关系的像素点在纹理中的位置,(u,v)的取值一般都经过归一化,即取值范围是0~1,假设某顶点映射的纹理像素点的纹理坐标是(0.5,0.0),表示像素纹理点位于纹理的横向二分之一的位置、纵向的起始位置;

而纹理中该像素纹理点的颜色值为:顶点在图像中所映射的像素点的颜色值,作为渲染三维模型时顶点所呈现的颜色值。

5)第一映射关系,图像中的像素点的二维坐标与三维模型中像素点的三维坐标针对同一特征点的映射关系。以人脸为例,图像中鼻子对应的像素点的二维坐标,与三维模型中鼻子对应像素点的三维坐标之间的映射矩阵。

6)第二映射关系,三维模型中三维点的三维坐标,与三维模型初始化的纹理中的纹理像素点的纹理坐标针对同一特征点的映射关系。以人脸为例,三维模型中对应鼻子的三维点的三维坐标点,与鼻子的纹理像素点的纹理坐标的映射矩阵。

7)插值,插值是指对二维的网格中的按照特定方向分布的纹理像素点设定颜色值。

例如,图1-4示出本发明实施例提供的各网格的顶点在图像中映射的目标像素点的纹理坐标的示意图,三维模型的网格(根据三角形、四边形等分割三维模型的表面而形成)的顶点根据第二映射关系,在纹理中映射有对应的纹理像素点,从而三维模型的网格在纹理中形成有对应的二维网格。

插值有以下两种类型:

线性插值,是指对二维的网格中按照特定方向分布的纹理像素点,对应设定线性变化的颜色值;本文中的线性插值可以采用已有的各种算法,例如,线性差值算法,用于设定按照一个特定方向(如x轴方向)线性变化的颜色值;双线性差值算法,用于设定按照两个特定方向(如x轴和y轴方向)线性变化的颜色值;

图1-5示出本发明实施例提供的线性插值的一个可选的示意图,已知坐标(x0,y0)与(x1,y1),要得到[x0,x1]区间内某一位置x在直线上的颜色值,根据图1-4中所示,得到两点式直线方程:

假设方程两边的值为α,那么这个值就是插值系数—从x0到x的距离与从x0到x1距离的比值,由于x值已知,所以可以从公式得到α的值

同样,

这样,在代数上就可以表示成为:

y=(1-α)y0+αy1;

这样通过α就可以直接得到y。

非线性插值,是指对二维的网格中按照特定方向分布的像素纹理点,对应设定非线性变化的颜色值;本文中的非线性插值可以采用已有的各种算法,如最近邻差值算法和双信道差值算法等。

6)颜色变换,也称为颜色迁移,对于像素的各个通道(如rgb通道,yuv通道)的原始的颜色值进行变换,包括线性的变换,即对于各像素的颜色值进行相同幅度的变化;还包括非线性的变换,即各像素的颜色值进行不同幅度(例如,符合特定函数的分布规律)的变换。

参见图2示出的本发明实施例提供的图像处理系统的一个可选的架构示意图,在图2中,系统包括终端21和服务器22,以下结合图2对图像处理系统20的拓扑结构进行说明。这里,所述服务器22通过终端21上传二维图像或从二维图像素材库直接获取二维图像的方式采集到二维图像后,通过预先建模的方式,如从模型数据库中选取光照数学模型,生成所述二维图像对应的三维模型;所述服务器22将所述三维模型传送至终端21,以通过终端21的显示界面渲染所述三维模型。其中,所述终端21可以为台式机电脑、电视机顶盒、xbox/ps3游戏机、户外广告展示屏等固定终端;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端。服务器22可以为三维模型所应用的以下各领域的服务器:1)服装型号的修改与制定;2)标准人台、人体模型的建立;3)服装三维设计;4)服装电子商务;5)量身定制;6)时装产品虚拟展示;7)虚拟试衣、时装表演;8)动漫游戏影视广告制作等。

本发明可选实施例中,所述服务器22通过预先建模的方式生成所述二维图像对应的三维模型的技术方案,以图像为人脸为例,在人脸肤色计算上,采用理想光照数学模型并逼近真实人物肤色的效果渲染。然而,真实人脸拍照的光照模型会非常复杂,导致使用理想光照数学模型计算出来的人脸肤色值,与照片上的肤色有一定的差异。

为了提高三维模型如三维人物模型中人脸区域肤色计算的真实感,结合如图2所示的图像处理系统,本发明实施例提供一种图像处理方法,如图3-1所示,所述方法包括:

步骤301:将图像中的特征点映射到三维模型中的特征点,形成所述图像中像素点与所述三维模型中三维点的第一映射关系。

这里,在本发明可选实施例中,在本发明实施例步骤301之前,所述服务器22首先通过终端21上传二维图像或从二维图像素材库直接获取二维图像的方式采集得到图像,通过预先建模的方式生成所述二维图像对应的三维模型;之后,所述服务器22将图像中的二维特征点映射到三维模型中的三维特征点,形成所述图像中二维像素点(即像素点的二维坐标)与所述三维模型中三维点的(三维坐标)第一映射关系。

在一实施例中,所述服务器22将图像中的特征点映射到三维模型中的特征点,形成所述图像中的像素点与所述三维模型中的三维点的第一映射关系,包括:识别二维的所述图像中对应对象的特征点;初始化所述对象中各特征点的二维坐标序列、与所述三维模型中相应特征点的三维坐标序列的映射矩阵;根据所述图像中各特征点、与所述三维模型中相应特征点的距离的加和最小,更新所述映射矩阵。

步骤302:根据所述第一映射关系,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点。

这里,所述服务器22根据所述第一映射关系,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点的位置。

在一实施例中,所述服务器22根据所述第一映射关系,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点,包括:以所述网格的顶点的三维坐标查找所述第一映射关系,得到所述各网格的顶点在所述图像中所映射到的像素点的二维坐标;

所述根据所述三维模型中三维点、与所述三维点的纹理像素点的第二映射关系,确定所述各网格的顶点在所述三维模型中所映射的纹理像素点,包括:以所述各网格的顶点的三维坐标查找所述第二映射关系,得到相应网格的顶点在所述三维模型中所映射到的纹理像素点的纹理坐标。

步骤303:根据所述三维模型中三维点、与所述三维模型的纹理像素点的第二映射关系,确定所述各网格的顶点在所述三维模型中所映射的纹理像素点。

这里,所述服务器22根据所述三维模型中三维点的三维坐标、与所述三维模型的纹理像素点的纹理坐标的第二映射关系,确定所述各网格的顶点在所述三维模型中所映射的纹理像素点的纹理坐标。

步骤304:根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转换。

这里,所述服务器22根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转换,得以通过色彩转移算法调整三维模型原始贴图的纹理。

在一实施例中,所述服务器22在执行步骤304之前,需要基于预设图像,对所述三维模型中的以下部分初始化纹理像素点的纹理坐标以及对应的颜色值:所述对象的成像部分,为所述对象在所述图像中成像的部分;所述对象的未成像部分,为所述对象在所述图像中未成像的部分。

举例来说,对于对象为人物而言,所述三维人物模型中的所述人物的成像部分为人脸部分,所述人物的未成像部分为除人脸部分以外的身体部分;对于对象为楼房而言,所述三维楼房模型中的所述楼房的成像部分为楼顶部分,所述楼房的未成像部分为除楼顶以外的中间楼层部分;对于对象为水壶而言,所述三维水壶模型中的所述水壶的成像部分为壶盖部分,所述水壶的未成像部分为除壶盖部分以外的杯身部分。

在一示例中,如图3-2所示,以所述对象为人物a为例,在三维人物模型中,所述人物a的成像部分为所述人物a在所述图像中成像的人脸部分a1;所述人物a的未成像部分,为所述人物a在所述图像中未成像的身体部分a2。

在一实施例中,所述服务器22根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转换,包括:

当所述三维模型包括仅包括对象在所述图像的成像部分(如,三维模型中包括人脸和身体部分,而图像中仅有人脸的成像)时,计算所述对象的平均颜色值;利用加和处理得到的颜色值,替换相应网格的顶点的初始化颜色值;或者,当渲染所述三维模型时,计算所述对象的平均颜色值;利用加和处理得到的颜色值,替换相应网格的顶点的初始化颜色值,并渲染替换后的颜色值;

当所述三维模型包括对象在所述图像的未成像部分(如,三维模型中包括人脸和身体部分,而图像中仅有人脸的成像)时,计算所述对象的平均颜色值;根据所述平均颜色值,对所述三维模型中所述对象的未成像部分(包括的纹理像素点)的初始化颜色值进行颜色迁移,或者,当渲染所述三维模型时,对所述三维模型中所述对象的未成像部分(包括的纹理像素点)初始颜色值进行颜色迁移(即初始化的颜色值),并渲染颜色迁移后的颜色值。

这里,所述服务器22对所述三维模型中所述对象的未成像部分的初始化颜色值进行颜色迁移,包括:将所述三维模型中所述对象的未成像部分中各像素点的初始颜色值与所述平均颜色值进行加和处理;利用加和处理得到颜色值,替换所述未成像部分中相应像素点的初始化颜色值。

这里,所述服务器22计算所述对象的平均颜色值,包括:计算所述图像中所述对象的成像部分(所包括的纹理像素点)的第一平均颜色值、以及,计算所述三维模型中所述对象的成像部分(所包括的纹理像素点)的第二平均颜色值;计算所述第一平均颜色值和所述第二平均颜色值的差值,得到所述平均颜色值。

需要补充说明的是,本发明实施例所述服务器在计算所述第一平均颜色值和所述第二平均颜色值之前,可以首先将所述图像中所述对象的成像部分(所包括的纹理像素点)、以及所述三维模型中所述成像部分(所包括的纹理像素点),筛除超出预设颜色值阈值的像素点。

步骤305:对各网格的顶点所映射的纹理像素点之间进行插值处理。

这里,所述服务器22可以通过线性的插值方式对各网格的顶点所映射的纹理像素点之间进行插值处理。这样,能够有效实现颜色过度平滑的效果。

具体地,所述服务器22使用所述各网格中顶点所映射的纹理像素点的颜色值为边界值,在所述边界值形成的颜色内取线性变化的颜色值;将所述线性变化的颜色值,应用到相应网格的顶点所映射的纹理像素点之间的像素点。

当然,在实际应用中,所述服务器22还可以通过非线性的插值方式对各网格的顶点所映射的纹理像素点之间进行插值处理。

本发明实施例所述图像处理方法,在采用预先方式将图像生成三维模型的基础上,通过对三维模型的网格顶点进行颜色重建,及其利用重建后的三维模型的网格的颜色值以网格为单位进行颜色插值处理,能够在有效实现颜色过度平滑的基础上,生成贴近于图像本身的纹理贴图,从而有效提高三维模型如三维模型中对象纹理计算的真实感。如图3-3为例,以对象为人物b为例,通过本发明实施例能够生成贴近于人物b的纹理贴图b1,使得所述人物b的三维模型b2中对象纹理接近真实物体的颜色值。

为了提高三维人物模型中人体肤色计算的真实感,结合如图2所示的图像处理系统,本发明实施例提供一种图像处理方法,如图4-1所示,所述方法包括:

步骤401:服务器22采集一人体的包括人脸图像和身体图像在内的二维图像,并采用预先建模的方式对所述二维图像进行建模,得到对应于所述人体的三维人物模型,所述人体模型包括人脸区域和身体区域。

其中,所述三维人物模型的人脸区域对应初始的人脸纹理,所述三维人物模型的身体区域对应初始的身体纹理。

在一示例中,如图4-2所示,通过本发明实施例步骤401,服务器22可以将所采集一人体的包括人脸图像和身体图像在内的二维图像(r1),通过预先建模的方式对所述二维图像(r1)进行建模,得到对应于所述人体的三维人物模型,所述人体三维模型包括人脸区域(r2)和身体区域(r3);其中,所述r2可以作为所述人体三维模型中人脸的初始纹理,r3也可以作为所述人体三维模型中身体的初始纹理。服务器22在执行后续对所述人脸图像进行特征点标记之前,先从二维图像r1中提取出人脸图像(r4)。

步骤402:服务器22对所述三维人物模型中的人脸区域进行特征点标记,确定出所述人脸区域中各特征点;对所述人脸图像进行特征点标记,确定出所述人脸图像中各特征点。

这里,服务器22对所述三维人物模型中的人脸区域中鼻子、眼睛及其嘴巴进行特征点标记,确定出所述人脸区域中各特征点鼻子、眼睛及其嘴巴。

这里,服务器22可以通过人脸检测标记的方式来对所述人脸图像进行特征点标记,首先计算出所述人脸区域的所有局部二值特征,再利用预设人脸训练集对所述局部二值特征进行判别,得到所述人脸图像中各特征点。

其中,所述人脸检测标记比较常见的有动态形状模型(activeshapemodel,asm),主动表观模型(activeappearancemodel,aam),级联回归等算法等。本发明实施例采用级联回归算法中的随机森林方式对所述人脸图像进行特征点标记包括如下两个阶段:

a、线下训练阶段:收集大量人脸标记的训练样本(包含人脸图像,以及手工标定的特征点位置),然后根据每个特征点的局部二值这样一个图像特征建立随机森林(机器学习算法名词,一种级联回归器),并对这类随机森林通过训练样本进行机器学习,得到所有随机森林里面所有节点的具体参数值。

b、线上识别阶段:针对要标记的人脸图像,首先计算出图像的所有局部二值特征,然后利用之前训练得到的随机森林对特征进行判别,得到最终的特征点,如图4-3中所示的1~20表示脸部边缘特征点,21~28以及29~36对应表示用户的左眉部特征点和右眉部特征点,37~44以及88表示用户的左眼特征点,其中88为左眼瞳孔,45~51以及89表示用户的右眼特征点,其中89为右眼瞳孔特征点,53~65表示用户的鼻子特征点、66~87表示用户的嘴唇特征点。需要指出的是,以上仅为示例,在可选实施例中可以在以上人脸特征点中仅提取部分或更多的特征点,或采用其他方式标记各个特征点,均属于本发明实施例的范畴。

步骤403:服务器22将三维模型中所述人脸区域的特征点的三维坐标映射到人脸图像中各特征点二维坐标,形成第一映射关系,记作特征点映射矩阵m。

具体地,服务器22初始化所述对象中各特征点的二维坐标序列、与所述三维模型中相应特征点的三维坐标序列的映射矩阵m;根据所述图像中各特征点、与所述三维模型中相应特征点的距离的加和最小,更新所述映射矩阵m。

这里,本发明实施例给出一个形成所述特征点映射矩阵m的示例性实现步骤:这里仅给出一个示例实现步骤:

在三模型标定的三维特征点坐标序列(vertex1,vertex2...,记为v),和对应的图像二维特征点坐标序列(p1,p2...,记为p)的基础上,建立一个特征点映射矩阵m,并进一步通过建立如下的最小值优化函数来更新所述映射矩阵m:

∑||v*m-p||^2

即优化一个三维坐标到二维坐标的映射矩阵m,使得每一个三维特征点v,通过m映射到的二维坐标p1,使p1与实际照片的对应二维特征点坐标p的欧式距离和最小。在实际应用中,可以对三维人物模型的三维顶点进行调整,使得在所述特征点映射矩阵m下,欧式距离和更小。

步骤404:服务器22根据所述特征点映射矩阵m,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点的纹理坐标,即生成人脸纹理;

在一示例中,如图4-4为例,服务器22遍历由三维人体模型的人脸区域中由三个顶点(v1,v2,v3)所构成的三角形网格面片;针对所述三角形网格面片的三个顶点(v1,v2,v3),分别通过特征点映射矩阵m与第二映射关系n计算出对应的像素位置(f1,f2,f3)与对应的纹理像素位置(t1,t2,t3),得到分别对应于纹理像素位置t1,t2,t3的颜色为所述人脸图像中像素f1,f2,f3的颜色;其中,所述第二映射关系n为根据模型文件可以读取到三维模型每个三维点{x2,y2,z2},与他的模型纹理点{u1,v1}的映射关系;对由t1,t2,t3构成的三角形内部所有像素进行线性插值,得到所述由t1,t2,t3构成的三角形中的每个像素,映射到所述人脸图像中对应位置的像素颜色。

步骤405:服务器22根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转移,生成身体区域对应的新肤色纹理。

具体地,服务器22根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转移,包括:计算所述人脸图像的平均颜色值;根据所述平均颜色值,对所述三维模型中所述身体区域的纹理像素点的初始化颜色值进行颜色迁移,或者,当渲染所述三维模型时,对所述三维模型中所述纹理像素点的初始颜色值进行颜色迁移(即初始化的颜色值),并渲染颜色迁移后的颜色值。

其中,本发明实施例所述服务器22计算所述对象的平均颜色值,包括:计算所述二维图像中所述人脸图像的纹理像素点的第一平均颜色值cp、以及,计算所述三维模型中所述人脸区域的纹理像素点的第二平均颜色值cm;计算所述第一平均颜色值cp和所述第二平均颜色值cm的差值,得到所述平均颜色值,记为(cp-cm)。这样,所述服务器22在根据所述平均颜色值,对所述三维模型中所述身体区域的纹理像素点的初始化颜色值进行颜色迁移可以按照以下的颜色转移算法:

cb1=cb+(cp-cm);

其中,cb为三维模型中身体区域的任一纹理像素点颜色,cb1为颜色转移后对应的肤色颜色。

本发明实施例根据所述颜色迁移算法可以得到与当前真实人脸肤色匹配的身体肤色;另外,所述颜色迁移算法对于像素间无相关性依赖,且是简单的线性计算关系,因此可以直接用来生成新的身体肤色纹理,或者直接在实时渲染过程中,对每个像素点颜色进行更改。

步骤406:服务器22将由步骤404和步骤405所生成的接近真实肤色的人脸纹理和身体新肤色纹理传送至终端21,以通过终端21的显示界面实现对所采集的人体的二维图像对应三维模型的实时渲染。

为了提高三维人物模型中人脸区域肤色计算的真实感,结合如图2所示的图像处理系统,本发明实施例提供一种图像处理方法,如图5-1所示,所述方法包括:

步骤501:服务器22采集一人脸二维图像,并采用预先建模的方式对所述二维图像进行建模,得到对应的三维人脸模型。

其中,所述三维人脸模型对应初始的人脸纹理。

步骤502:服务器22对所述人脸图像进行特征点标记及三维人脸模型进行特征点标记。

这里,服务器22可以通过人脸检测标记的方式来对所述人脸二维图像进行特征点标记,首先计算出所述人脸二维图像的所有局部二值特征,再利用预设人脸训练集对所述局部二值特征进行判别,得到所述人脸二维图像中各特征点。

其中,所述人脸检测标记比较常见的有动态形状模型(activeshapemodel,asm),主动表观模型(activeappearancemodel,aam),级联回归等算法等。本发明实施例采用级联回归算法中的随机森林方式对所述人脸二维图像进行特征点标记包括如下两个阶段:

a、线下训练阶段:收集大量人脸标记的训练样本(包含人脸图像,以及手工标定的特征点位置),然后根据每个特征点的局部二值这样一个图像特征建立随机森林(机器学习算法名词,一种级联回归器),并对这类随机森林通过训练样本进行机器学习,得到所有随机森林里面所有节点的具体参数值。

b、线上识别阶段:针对要标记的人脸图像,首先计算出图像的所有局部二值特征,然后利用之前训练得到的随机森林对特征进行判别,得到最终的特征点,如图4-3中所示的1~20表示脸部边缘特征点,21~28以及29~36对应表示用户的左眉部特征点和右眉部特征点,37~44以及88表示用户的左眼特征点,其中88为左眼瞳孔,45~51以及89表示用户的右眼特征点,其中89为右眼瞳孔特征点,53~65表示用户的鼻子特征点、66~87表示用户的嘴唇特征点。需要指出的是,以上仅为示例,在可选实施例中可以在以上人脸特征点中仅提取部分或更多的特征点,或采用其他方式标记各个特征点,均属于本发明实施例的范畴。

步骤503:服务器22将所标记的三维人脸模型的各特征点映射到人脸二维图像的各特征点,估计得到映射矩阵m。

这里,本发明实施例给出一个形成所述特征点映射矩阵m的示例性实现步骤:这里仅给出一个示例实现步骤:

在三模型标定的三维特征点坐标序列(vertex1,vertex2...,记为v),和对应的图像二维特征点坐标序列(p1,p2...,记为p)的基础上,建立一个特征点映射矩阵m,并进一步通过建立如下的最小值优化函数来更新所述映射矩阵m:

∑||v*m-p||^2

即优化一个三维坐标到二维坐标的映射矩阵m,使得每一个三维特征点v,通过m映射到的二维坐标p1,使p1与实际照片的对应二维特征点坐标p的欧式距离和最小。在实际应用中,可以对三维人脸模型的三维顶点进行调整,使得在所述特征点映射矩阵m下,欧式距离和更小。

步骤504:服务器22根据所述特征点映射矩阵m,确定所述三维人脸模型表面各网格的顶点在所述图像中所映射的目标像素点的纹理坐标,即生成人脸纹理。

在一示例中,如图4-4为例,服务器22遍历由三维人脸模型中由三个顶点(v1,v2,v3)所构成的三角形网格面片;针对所述三角形网格面片的三个顶点(v1,v2,v3),分别通过特征点映射矩阵m与第二映射关系n计算出对应的像素位置(f1,f2,f3)与对应的纹理像素位置(t1,t2,t3),得到分别对应于纹理像素位置t1,t2,t3的颜色为所述人脸二维图像中像素f1,f2,f3的颜色;其中,所述第二映射关系n为根据模型文件可以读取到三维人脸模型每个三维点{x2,y2,z2},与他的模型纹理点{u1,v1}的映射关系;对由t1,t2,t3构成的三角形内部所有像素进行线性插值,得到所述由t1,t2,t3构成的三角形中的每个像素,映射到所述人脸二维图像中对应位置的像素颜色。

在一示例中,如图5-2所示,服务器22可以将所采集的人脸二维图像(m1)中的鼻子、眼睛及其嘴巴进行特征点标记(m2),确定出所述人脸区域中各特征点鼻子、眼睛及其嘴巴;通过后续步骤503~504的图像处理过程,生成人脸纹理(m3)。

图6为本发明实施例提供的图像处理装置的组成结构示意图,应用于服务器,如图6所示,该装置包括:

映射模块601,用于将图像中的特征点映射到三维模型中的特征点,形成所述图像中像素点与所述三维模型中三维点的第一映射关系;

第一确定模块602,用于根据所述第一映射关系,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点;

第二确定模块603,用于根据所述三维模型中三维点、与所述三维模型的纹理像素点的第二映射关系,确定所述各网格的顶点在所述三维模型中所映射的纹理像素点;

颜色转移模块604,用于根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转换,以及,对各网格的顶点所映射的纹理像素点之间进行插值处理。

在一实施例中,所述映射模块601包括:

识别单元,用于识别二维的所述图像中对应对象的特征点;

矩阵初始化单元,用于初始化所述对象中各特征点的二维坐标序列、与所述三维模型中相应特征点的三维坐标序列的映射矩阵;

更新单元,用于根据所述图像中各特征点、与所述三维模型中相应特征点的距离的加和最小,更新所述映射矩阵。

在一实施例中,所述第一确定模块602,用于以所述网格的顶点的三维坐标查找所述第一映射关系,得到所述各网格的顶点在所述图像中所映射到的像素点的二维坐标;

所述第二确定模块603,用于以所述各网格的顶点的三维坐标查找所述第二映射关系,得到相应网格的顶点在所述三维模型中所映射到的纹理像素点的纹理坐标。

在一实施例中,所述装置还包括初始化模块;

所述初始化模块,用于基于预设图像,对所述三维模型中的以下部分初始化纹理像素点的纹理坐标以及对应的颜色值:

所述对象的成像部分,为所述对象在所述图像中成像的部分;

所述对象的未成像部分,为所述对象在所述图像中未成像的部分。

在一实施例中,所述颜色转移模块604,用于当所述三维模型包括仅包括对象在所述图像的成像部分时,

计算所述对象的平均颜色值;

利用加和处理得到的颜色值,替换相应网格的顶点的初始化颜色值;或者,

当渲染所述三维模型时,计算所述对象的平均颜色值;

利用加和处理得到的颜色值,替换相应网格的顶点的初始化颜色值,并渲染替换后的颜色值。

在一实施例中,所述颜色转移模块604,还用于当所述三维模型包括对象在所述图像的未成像部分时,计算所述对象的平均颜色值;根据所述平均颜色值,对所述三维模型中所述对象的未成像部分的初始化颜色值进行颜色迁移,或者,当渲染所述三维模型时,对所述三维模型中所述对象的未成像部分初始颜色值进行颜色迁移,并渲染颜色迁移后的颜色值。

在一实施例中,所述颜色转移模块604,还用于将所述三维模型中所述对象的未成像部分中各像素点的初始颜色值与所述平均颜色值进行加和处理;利用加和处理得到颜色值,替换所述未成像部分中相应像素点的初始化颜色值。

在一实施例中,所述颜色转移模块604,还用于计算所述图像中所述对象的成像部分的第一平均颜色值、以及,计算所述三维模型中所述对象的成像部分的第二平均颜色值;计算所述第一平均颜色值和所述第二平均颜色值的差值,得到所述平均颜色值。

在一实施例中,所述颜色转移模块604,还用于在计算所述第一平均颜色值和所述第二平均颜色值之前,将所述图像中所述对象的成像部分、以及所述三维模型中所述成像部分,筛除超出预设颜色值阈值的像素点。

在一实施例中,所述颜色转移模块604,还用于使用所述各网格中顶点所映射的纹理像素点的颜色值为边界值,在所述边界值形成的颜色空间内取线性变化的颜色值;将所述线性变化的颜色值,应用到相应网格的顶点所映射的纹理像素点之间的像素点。

实际应用中,上述映射模块601、第一确定模块602、第二确定模块603及其颜色转移模块604的具体结构均可对应于处理器。所述处理器具体的结构可以为中央处理器(cpu,centralprocessingunit)、微处理器(mcu,microcontrollerunit)、数字信号处理器(dsp,digitalsignalprocessing)或可编程逻辑器件(plc,programmablelogiccontroller)等具有处理功能的电子元器件或电子元器件的集合。其中,所述处理器包括可执行代码,所述可执行代码存储在存储介质中,所述处理器可以通过总线等通信接口与所述存储介质中相连,在执行具体的各单元的对应功能时,从所述存储介质中读取并运行所述可执行代码。所述存储介质用于存储所述可执行代码的部分优选为非瞬间存储介质。

本实施例所述图像处理装置可设置于服务器侧,也可以设置于终端侧。

示例性的,图7示出图像处理装置700的一个可选的硬件结构示意图,包括至少一个处理器701、存储器702、至少一个网络接口704和用户接口703。图像处理装置700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统705。

其中,用户接口703可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。

可以理解,存储器702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)。本发明实施例描述的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。

本发明实施例中的存储器702用于存储各种类型的数据以支持图像处理装置700的操作。这些数据的示例包括:用于在图像处理装置700上操作的任何计算机程序,如操作系统7021和应用程序7022;联系人数据;电话簿数据;消息;图片;视频等。其中,操作系统7021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022可以包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序7022中。

上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成前述方法的步骤。

在示例性实施例中,图像处理装置700可以被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)或其他电子元件实现,用于执行前述方法。

具体地,所述处理器701通过所述总线系统705从所述存储器702中读取并执行信息处理方法的可执行指令,可执行如下步骤:

将图像中的特征点映射到三维模型中的特征点,形成所述图像中像素点与所述三维模型中三维点的第一映射关系;

根据所述第一映射关系,确定所述三维模型表面各网格的顶点在所述图像中所映射的目标像素点;

根据所述三维模型中三维点、与所述三维模型的纹理像素点的第二映射关系,确定所述各网格的顶点在所述三维模型中所映射的纹理像素点;

根据所述各网格的顶点所映射的目标像素点的颜色值,对相应网格的顶点所映射的纹理像素点进行颜色转换,以及,

对各网格的顶点所映射的纹理像素点之间进行插值处理。

本发明实施例所述图像处理装置,在采用预先方式将图像生成三维模型的基础上,通过对三维模型的网格顶点进行颜色重建,及其利用重建后的三维模型的网格的颜色值以网格为单位进行颜色插值处理,能够在有效实现颜色过度平滑的基础上,生成贴近于图像本身的纹理贴图,从而有效提高三维模型如三维模型中对象纹理计算的真实感。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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