首页 / 专利库 / 人工智能 / 三维人脸重建 / 一种基于单张图片的三维头发重建方法

一种基于单张图片的三维头发重建方法

阅读:448发布:2020-05-08

专利汇可以提供一种基于单张图片的三维头发重建方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于单张图片的三维头发重建方法,包括:1)条带网格头发模型生成;2)条带网格头发模型 数据库 构建;3)基于图片的发型检索(发型检索);4)条带网格头发与头部融合(头发融合)。主要流程:将头发丝模型转化为条带 网格模型 ,并构建条带网格头发模型数据库,给定输入图像,首先从其头发区域提取头发形状检索图,头发形状 特征向量 和头发方向图作为检索信息,然后从条带网格头发模型数据库中检索出与该检索信息最相似的头发模型,最后把该头发模型贴合到人体头部模型中。本发明解决的是针对单张图片的三维头发重建问题,可以应用于头发重建、头发动画制作。,下面是一种基于单张图片的三维头发重建方法专利的具体信息内容。

1.一种基于单张图片的三维头发重建方法,其特征在于,包括以下步骤:
1)条带网格头发模型生成
将头发丝模型转换为条带网格头发模型,其中利用方向约束调整条带网格的朝向;所述的条带网格头发模型生成,其过程为:
首先将头发丝模型转换为条带网格头发模型,其中单个头发丝模型具体转化方法如下:
a)将该头发丝模型{Pj}的重心移动至笛卡尔坐标系的原点,第j条头发丝记为Pj的第i个采样点表示pi=(xi,yi,zi),其用笛卡尔坐标系来表示,p0表示头发丝根的位置,根据公式(1)计算第i个采样点的球坐标(ri,φi,θi):
其中arccos为反余弦函数,arctan为反正切函数;利用球坐标计算第i个采样点对应的三个正交方向ET,i,EN,i,EB,i如下:
其中ET,i为第i个采样点沿头发丝轴线的方向;根据采样点pi,以及它的三个正交方向,设定一个半径,然后生成螺旋圆柱网格头发;
b)若生成的是圆柱状的螺旋线结构,EN,i,EB,i的朝向并不会影响最终的显示结果;与螺旋圆柱网格头发不同,在此需要生成的是条带网格;假如将pi处的条带的平面设置为ET,i和EN,i构成的平面中,那么EN,i,EB,i的朝向会影响条带平面的朝向,并影响最终的视觉结果,因此需要对EN,i,EB,i的方向进行约束;而ET,i因为一直沿着头发法向,故通常情况下不需要进行修改;若不对条带平面进行约束,则在某些视下看到的只是平面的切面,这将对头发的渲染结果造成不良影响;加入约束后,能在大多数视角上获得好的渲染结果;具体地,为EN,EB计算一个修正角度θrot,将EN和EB绕ET逆时针旋转角度θrot,得到一个新的方向E'N,E'B,这两个方向依旧与ET保持正交的关系,其中E'B将作为头发带平面的朝向,这个平面的朝向与头发带的法向一致;因为头发丝模型的重心位于原点,因此每根头发丝的采样点的坐标pi能够近似看作采样点的方向,记为Diri,这个将作为对条带朝向的约束,即希望得到的条带的朝向尽可能地接近于Diri;为了使各个相邻采样点间的角度应尽量接近,加入角度的平滑项,得到能量式子(3):
其中求解的目标为采样点修正角度的集合 P={pi}为一条头发丝采样点的集合;
表示将Eb,i绕ET逆时针旋转角度 N(i)表示与第i个采样点相邻的采
样点的序号;wsmooth为平滑项,用于控制角度的平滑程度;在实际求解计算过程中,若ET,i与Diri非常接近时,求解 将变得不准确,此时只用平滑项进行约束;
c)实际使用中不需要使用所有的头发丝来生成条带头发,因此使用K-MEANS算法对头发丝进行聚类,聚类数量设置为100,聚类中的特征向量使用的是头发根节点的位置、头发的长度、头发的方向信息;然后以离聚类的中心最近的头发丝作为头发带生成的位置,并按照上面的方法将该头发丝生成头发带;但这样生成的头发带可能不能覆盖整个头部,因此通过在未覆盖区域周围搜索最近的头发带,并将该头发带复制到该区域,迭代多次,直到未覆盖区域的面积小于设定的阈值
2)条带网格头发模型数据库构建
使用步骤1)方法生成条带网格头发模型,构造出一个包含686个条带网格头发模型的头发数据库,并为生成的条带网格头发模型生成检索用的头发形状检索图、头发形状特征向量、头发方向检索图;
3)基于图片的发型检索
从输入图片中获得头发形状检索图、头发形状特征向量、头发方向检索图,并根据头发距离公式从步骤2)中获得的条带网格头发模型数据库中计算并检索出与输入图片头发区域最相似的头发模型;
4)条带网格头发与头部融合
利用整体和局部变换将步骤3)中检索出的头发模型贴合到人头网格模型中进行融合。
2.根据权利要求1所述的一种基于单张图片的三维头发重建方法,其特征在于:在步骤
2)中,所述的条带头发数据库构建,其过程为:
根据上面步骤a)的条带网格生成方法,将343个头发丝模型转换为条带网格模型,再对头发模型左右翻转,使得最终数据库中共包含686个发型;为了使用头发形状和头发走向这两个信息来检索头发,需要为数据库中的条带网格模型生成检索所用的信息;具体地,首先将头发都根据仿射变换放置在一个统一的人体模型中,然后根据模型人脸中的特征点选择包围盒,确定渲染图的尺寸以及模型在渲染图中的位置,接着使用z-buffer渲染算法生成头发形状检索图;将整个人体都放进去渲染是考虑到在头发长时,只放头部模型时得到的渲染图不符合遮挡关系,可能导致错误的检索结果;为了能检索到符合方向信息的头发模型,需为生成的条带网格模型上色,颜色代表头发的走向,使用z-buffer渲染算法生成方向检索图;为了加快检索的速度,对于头发形状检索图,进一步以人脸为中心,使用极坐标将渲染图均匀分为Nbin个区间,以正上方为极坐标原点,按顺时针方向在每个区间统计头发像素的大小,从而得到Nbin维特征向量;这个特征向量能用于估计头发的形状,有利于对头发模型进行检索;使用的检索图尺寸统一设为宽100,高213;形状检索图使用红色作为头发区域,方向检索图只保留头发区域的颜色值,其它均设为黑色;使用的头发颜色不包含黑色,因此黑色作为背景不会引起歧义。
3.根据权利要求1所述的一种基于单张图片的三维头发重建方法,其特征在于:在步骤
3)中,所述的基于图片的发型检索,其过程为:
首先,通过人脸特征点检测库检测出图片上的人脸特征点,根据图片上的人脸特征点计算包围盒,将头发分割图中的头发区域图以及头发方向图都变化到与数据库中检索图一致的尺寸,并计算出头发形状特征向量f;利用Gabor滤波器配合手工交互修正,得到图片头发区域头发丝的走向,这些走向是以有序分段直线的方式来表示的,其中每个分段点都记录颜色信息,接着把这些分段直线都对齐到数据库中的头发方向检索图mt,其中mt对应于发型 然后把这些分段直线光栅化,生成与mt相同尺寸的颜色检索图ms,其中ms对应于发型于是发型 与发型 间距离的具体计算方式如下:
其中 分别代表发型 和发型 的头发形状的特征向量; 分别代表发
型 检索图的第i个像素的颜色值以及发型 检索图的第i个像素的颜色值,均为0~255间; 代表发型 的方向检索图与发型 方向检索图中重合部分的像素序号的
集合; 代表这个集合中像素序号的数量;wc控制第二项的影响权重;这个距离计算公式用于检索一个头发形状以及头发的方向接近的发型。
4.根据权利要求1所述的基于单张图片的三维头发重建方法,其特征在于:在步骤4)中,所述的条带网格头发与头部融合,其过程为:
预先在人体头部网格上划定头壳区域,即认为发根应只出现在这个区域;对条带头发的位置进行修正,修正方法如下:
a)对头发整体位置进行修正:在每个条带头发网格的根部顶点 寻找头部网格头壳区域的最近点 它们分别构成顶点集合vroot和vFLAME,然后计算一个变换矩阵MT,使得经过这个变换后的vroot与vFLAME间的距离最小;vroot经过MT变换后记为
b)对每根头发带位置进行修正:为 中的每个顶点 寻找头部网格上头壳区域的最近点 然后计算 到 的平移量为Troot,使用该平移量对 所在头发带进行
整体平移操作。

说明书全文

一种基于单张图片的三维头发重建方法

技术领域

[0001] 本发明涉及计算机图形学和三维动画制作的技术领域,尤其是指一种基于单张图片的三维头发重建方法。

背景技术

[0002] 人类既是各种活动的主体,又是很多应用的对象,因而虚拟现实应用大都不可避免以人为中心。人体表面形状及其运动的重建在这类应用中起到关键作用,从日常生活、游戏动画、教育培训到工业设计,构建高度真实的个性化虚拟人体静态模型和动态几何都日渐显示出其重要性。例如,在虚拟试衣中,除了身体形状和运动信息,试衣人的脸部表情、头发飘舞等,都会对体验效果产生影响。而在很多虚拟现实应用中,场景中的人物外观的逼真程度是衡量沉浸感强弱的一个重要指标。头发重建是构建真实人物外观的一个重要步骤。
[0003] 以往的头发重建工作往往针对的是头发丝的重建。虽然使用头发丝进行重建可以最终渲染出非常逼真的结果,但这个渲染过程往往是离线的。在目前虚拟现实,3D游戏等应用场景中,用头发丝进行头发重建,不仅需要较大的存储空间,而且渲染难度较大,不利于其在实时环境中进行应用。使用头发丝这种无网格的表示形式也与目前实时渲染管线中常用的三网格表示形式不匹配。因此本发明考虑的是针对单张图片进行条带网格头发的重建,而不是头发丝的重建。生成的头发带模型可以很方便地用在现有的游戏引擎,如Unity3D中。

发明内容

[0004] 本发明针对目前三维头发重建工作不利于实时渲染的问题,提出了一种基于单张图片的三维头发重建方法,可以根据人脸图像重建出形状与原图接近的,可用于实时渲染的三维头发模型。
[0005] 为实现上述目的,本发明所提供的技术方案为:一种基于单张图片的三维头发重建方法,包括以下步骤:
[0006] 1)条带网格头发模型生成
[0007] 将头发丝模型转换为条带网格头发模型,其中利用方向约束调整条带网格的朝向;
[0008] 2)条带网格头发模型数据库构建
[0009] 使用步骤1)方法生成条带网格头发模型,构造出一个包含686个条带网格头发模型的头发数据库,并为生成的条带网格头发模型生成检索用的头发形状检索图、头发形状特征向量和头发方向检索图;
[0010] 3)基于图片的发型检索
[0011] 从输入图片中获得头发形状检索图、头发形状特征向量和头发方向检索图,并根据头发距离公式从步骤2)中获得的条带网格头发模型数据库中计算并检索出与输入图片头发区域最相似的头发模型;
[0012] 4)条带网格头发与头部融合
[0013] 利用整体和局部变换将步骤3)中检索出的头发模型贴合到人头网格模型中进行融合。
[0014] 在步骤1)中,所述的条带网格头发模型生成,其过程为:
[0015] 首先将头发丝模型转换为条带网格头发模型,其中单个头发丝模型具体转化方法如下:
[0016] a)将该头发丝模型{Pj}的重心移动至笛卡尔坐标系的原点,第j条头发丝记为Pj的第i个采样点表示pi=(xi,yi,zi),其用笛卡尔坐标系来表示,p0表示头发丝根的位置,根据公式(1)计算第i个采样点的球坐标(ri,φi,θi):
[0017]
[0018] 其中arccos为反余弦函数,arctan为反正切函数;利用球坐标计算第i个采样点对应的三个正交方向ET,i,EN,i,EB,i如下:
[0019]
[0020] 其中ET,i为第i个采样点沿头发丝轴线的方向;根据采样点pi,以及它的三个正交方向,设定一个半径,然后生成螺旋圆柱网格头发;
[0021] b)若生成的是圆柱状的螺旋线结构,EN,i,EB,i的朝向并不会影响最终的显示结果;与螺旋圆柱网格头发不同,在此需要生成的是条带网格;假如将pi处的条带的平面设置为ET,i和EN,i构成的平面中,那么EN,i,EB,i的朝向会影响条带平面的朝向,并影响最终的视觉结果,因此需要对EN,i,EB,i的方向进行约束;而ET,i因为一直沿着头发法向,故通常情况下不需要进行修改;若不对条带平面进行约束,则在某些视角下看到的只是平面的切面,这将对头发的渲染结果造成不良影响;加入约束后,能在大多数视角上获得好的渲染结果;具体地,为EN,EB计算一个修正角度θrot,将EN和EB绕ET逆时针旋转角度θrot,得到一个新的方向E'N,E'B,这两个方向依旧与ET保持正交的关系,其中E'B将作为头发带平面的朝向,这个平面的朝向与头发带的法向一致;因为头发丝模型的重心位于原点,因此每根头发丝的采样点的坐标pi能够近似看作采样点的方向,记为Diri,这个将作为对条带朝向的约束,即希望得到的条带的朝向尽可能地接近于Diri;为了使各个相邻采样点间的角度应尽量接近,加入角度的平滑项,得到能量式子(3):
[0022]
[0023] 其中求解的目标为采样点修正角度的集合 P={pi}为一条头发丝采样点的集合; 表示将Eb,i绕ET逆时针旋转角度 N(i)表示与第i个采样点相邻的采样点的序号;wsmooth为平滑项,用于控制角度的平滑程度;在实际求解计算过程中,若ET,i与Diri非常接近时,求解 将变得不准确,此时只用平滑项进行约束;
[0024] c)实际使用中不需要使用所有的头发丝来生成条带头发,因此使用K-MEANS算法对头发丝进行聚类,聚类数量设置为100,聚类中的特征向量使用的是头发根节点的位置、头发的长度、头发的方向信息;然后以离聚类的中心最近的头发丝作为头发带生成的位置,并按照上面的方法将该头发丝生成头发带;但这样生成的头发带可能不能覆盖整个头部,因此通过在未覆盖区域周围搜索最近的头发带,并将该头发带复制到该区域,迭代多次,直到未覆盖区域的面积小于设定的阈值
[0025] 在步骤2)中,所述的条带头发数据库构建,其过程为:
[0026] 根据a)的条带网格生成方法,将343个头发丝模型转换为条带网格模型,再对头发模型左右翻转,使得最终数据库中共包含686个发型;为了使用头发形状和头发走向这两个信息来检索头发,需要为数据库中的条带网格模型生成检索所用的信息;具体地,首先将头发都根据仿射变换放置在一个统一的人体模型中,然后根据模型人脸中的特征点选择包围盒,确定渲染图的尺寸以及模型在渲染图中的位置,接着使用z-buffer渲染算法生成头发形状检索图;将整个人体都放进去渲染是考虑到在头发长时,只放头部模型时得到的渲染图不符合遮挡关系,可能导致错误的检索结果;为了能检索到符合方向信息的头发模型,需为生成的条带网格模型上色,颜色代表头发的走向,使用z-buffer渲染算法生成方向检索图;为了加快检索的速度,对于头发形状检索图,进一步以人脸为中心,使用极坐标将渲染图均匀分为Nbin个区间,以正上方为极坐标原点,按顺时针方向在每个区间统计头发像素的大小,从而得到Nbin维特征向量;这个特征向量能用于估计头发的形状,有利于对头发模型进行检索;使用的检索图尺寸统一设为宽100,高213;形状检索图使用红色作为头发区域,方向检索图只保留头发区域的颜色值,其它均设为黑色;使用的头发颜色不包含黑色,因此黑色作为背景不会引起歧义。
[0027] 在步骤3)中,所述的基于图片的发型检索,其过程为:
[0028] 首先,通过人脸特征点检测库检测出图片上的人脸特征点,根据图片上的人脸特征点计算包围盒,将头发分割图中的头发区域图以及头发方向图都变化到与数据库中检索图一致的尺寸,并计算出头发形状特征向量f;利用Gabor滤波器配合手工交互修正,得到图片头发区域头发丝的走向,这些走向是以有序分段直线的方式来表示的,其中每个分段点都记录颜色信息,接着把这些分段直线都对齐到数据库中的头发方向检索图mt,其中mt对应于发型 然后把这些分段直线光栅化,生成与mt相同尺寸的颜色检索图ms,其中ms对应于发型 于是发型 与发型 间距离的具体计算方式如下:
[0029]
[0030] 其中 分别代表发型 和发型 的头发形状的特征向量; 分别代表发型 检索图的第i个像素的颜色值以及发型 检索图的第i个像素的颜色值,均为0~255间; 代表发型 的方向检索图与发型 方向检索图中重合部分的像素序
号的集合; 代表这个集合中像素序号的数量;wc控制第二项的影响权重;这个距离计算公式用于检索一个头发形状以及头发的方向都尽可能接近的发型。
[0031] 在步骤4)中,所述的条带网格头发与头部融合,其过程为:
[0032] 预先在人体头部网格上划定头壳区域,即认为发根应只出现在这个区域;对条带头发的位置进行修正,修正方法如下:
[0033] a)对头发整体位置进行修正:在每个条带头发网格的根部顶点 寻找头部网格头壳区域的最近点 它们分别构成顶点集合vroot和vFLAME,然后计算一个变换矩阵MT,使得经过这个变换后的vroot与vFLAME间的距离最小;vroot经过MT变换后记为[0034] b)对每根头发带位置进行修正:为 中的每个顶点 寻找头部网格上头壳区域的最近点 然后计算 到 的平移量为Troot,使用该平移量对 所在头发带进行整体平移操作。
[0035] 本发明与现有技术相比,具有如下优点与有益效果:
[0036] 1、重建结果更完整
[0037] 图10展示本方法与Cao等方法在头发重建效果的对比,可以看到,本方法构造的头发有比较完整的结构,其边缘也有比较好的头发丝过渡感;Cao等方法重建的是粗糙的网格,不是完整的头发重建。
[0038] 2、重建结果适合于实时渲染
[0039] 本方法的头发的渲染方式如图7所示,只要提供一些合适的贴图,就可以基于现有游戏引擎对头发进行实时渲染,重建的条带网格结果适合于现有的实时渲染管线。附图说明
[0040] 图1为本发明的三维头发重建方法流程图
[0041] 图2为本发明所用头发丝数据库示意图。
[0042] 图3为条带网格和圆柱形网格对比示意图。
[0043] 图4为无视角约束与有视角约束对比图。
[0044] 图5为本发明视角约束示意图。
[0045] 图6为本发明的数据库检索图示意图。
[0046] 图7为本发明头发渲染示意图。
[0047] 图8为本发明头发重建算法的时间统计图。
[0048] 图9为本发明发型检索的结果图。
[0049] 图10为本发明的重建结果与Cao等结果的对比图。

具体实施方式

[0050] 下面结合具体实施例对本发明作进一步说明。
[0051] 本实施例所提供的基于单张图片的三维头发重建方法,其具体情况如下:将头发丝模型转化为条带网格模型,并构建条带网格头发模型数据库,给定输入图像,首先从其头发区域提取头发形状检索图,头发形状特征向量和头发方向图作为检索信息,然后从条带网格头发模型数据库中检索出与该检索信息最相似的头发模型,最后把该头发模型贴合到人体头部模型中。以此为基础,本发明提出三维头发重建框架,如图1所示。
[0052] 本实施例所述的基于单张图片的三维头发重建方法,算法流程如图1所示,包括以下步骤:
[0053] 1)条带网格头发模型生成
[0054] a)将该头发丝模型{Pj}的重心移动至笛卡尔坐标系的原点,第j条头发丝(记为Pj)的第i个采样点表示pi=(xi,yi,zi),其用笛卡尔坐标系来表示,p0表示头发丝根的位置,根据公式(1)计算第i个采样点的球坐标(ri,φi,θi):
[0055]
[0056] 其中arccos为反余弦函数,arctan为反正切函数;利用球坐标计算第i个采样点对应的三个正交方向ET,i,EN,i,EB,i如下:
[0057]
[0058] 其中ET,i为第i个采样点沿头发丝轴线的方向;根据采样点pi,以及它的三个正交方向,设定一个半径,然后生成螺旋圆柱网格头发;
[0059] b)若生成的是圆柱状的螺旋线结构,如图3中(a)所示,EN,i,EB,i的朝向并不会影响最终的显示结果;与螺旋圆柱网格头发不同,在此需要生成的是条带网格,如图3中(b)所示;假如将pi处的条带的平面设置为ET,i和EN,i构成的平面中,那么EN,i,EB,i的朝向会影响条带平面的朝向,并影响最终的视觉结果,因此需要对EN,i,EB,i的方向进行约束;而ET,i因为一直沿着头发法向,故通常情况下不需要进行修改;若不对条带平面进行约束,则在某些视角下看到的只是平面的切面,这将对头发的渲染结果造成不良影响;加入约束后,能在大多数视角上获得好的渲染结果,如图4所示;具体地,为EN,EB计算一个修正角度θrot,将EN和EB绕ET逆时针旋转角度θrot,得到一个新的方向E'N,E'B,这两个方向依旧与ET保持正交的关系,其中E'B将作为头发带平面的朝向,这个平面的朝向与头发带的法向一致;因为头发丝模型的重心位于原点,因此每根头发丝的采样点的坐标pi能够近似看作采样点的方向,记为Diri,这个将作为对条带朝向的约束,即希望得到的条带的朝向尽可能地接近于Diri;为了使各个相邻采样点间的角度应尽量接近,加入角度的平滑项,得到能量式子(3):
[0060]
[0061] 其中求解的目标为采样点修正角度的集合 P={pi}为一条头发丝采样点的集合; 表示将Eb,i绕ET逆时针旋转角度 N(i)表示与第i个采样点相邻的采样点的序号;wsmooth为平滑项,用于控制角度的平滑程度;在实际求解计算过程中,若ET,i与Diri非常接近时,求解 将变得不准确,此时只用平滑项进行约束,如图5所示;
[0062] c)实际使用中不需要使用所有的头发丝来生成条带头发,因此使用K-MEANS算法对头发丝进行聚类,聚类数量设置为100,聚类中的特征向量使用的是头发根节点的位置、头发的长度、头发的方向信息;然后以离聚类的中心最近的头发丝作为头发带生成的位置,并按照上面的方法将该头发丝生成头发带;但这样生成的头发带可能不能覆盖整个头部,因此通过在未覆盖区域周围搜索最近的头发带,并将该头发带复制到该区域,迭代多次,直到未覆盖区域的面积小于设定的阈值。
[0063] 2)条带头发数据库构建
[0064] 据a)的条带网格生成方法,将343个头发丝模型(如图2所示)转换为条带网格模型,再对头发模型左右翻转,使得最终数据库中共包含686个发型;为了使用头发形状和头发走向这两个信息来检索头发,需要为数据库中的条带网格模型生成检索所用的信息;具体地,首先将头发都根据仿射变换放置在一个统一的人体模型中,然后根据模型人脸中的特征点选择包围盒,确定渲染图的尺寸以及模型在渲染图中的位置,接着使用z-buffer渲染算法生成头发形状检索图;将整个人体都放进去渲染是考虑到在头发长时,只放头部模型时得到的渲染图不符合遮挡关系,可能导致错误的检索结果;为了能检索到符合方向信息的头发模型,需为生成的条带网格模型上色,颜色代表头发的走向,使用z-buffer渲染算法生成方向检索图;为了加快检索的速度,对于头发形状检索图,进一步以人脸为中心,使用极坐标将渲染图均匀分为Nbin个区间,以正上方为极坐标原点,按顺时针方向在每个区间统计头发像素的大小,从而得到Nbin维特征向量;这个特征向量能用于估计头发的形状,有利于对头发模型进行检索;使用的检索图尺寸统一设为宽100,高213;形状检索图使用红色作为头发区域,方向检索图只保留头发区域的颜色值,其它均设为黑色;使用的头发颜色不包含黑色,因此黑色作为背景不会引起歧义;检索图如图6所示。
[0065] 3)基于图片的发型检索
[0066] 先通过人脸特征点检测库检测出图片上的人脸特征点,根据图片上的人脸特征点计算包围盒,将头发分割图中的头发区域图以及头发方向图都变化到与数据库中检索图一致的尺寸,并计算出头发形状特征向量f;利用Gabor滤波器配合手工交互修正,得到图片头发区域头发丝的走向,这些走向是以有序分段直线的方式来表示的,其中每个分段点都记录颜色信息,接着把这些分段直线都对齐到数据库中的头发方向检索图mt,其中mt对应于发型 然后把这些分段直线光栅化,生成与mt相同尺寸的颜色检索图ms,其中ms对应于发型于是发型 与发型 间距离的具体计算方式如下:
[0067]
[0068] 其中 分别代表发型 和发型 的头发形状的特征向量; 分别代表发型 检索图的第i个像素的颜色值以及发型 检索图的第i个像素的颜色值,均为0~255间; 代表发型 的方向检索图与发型 方向检索图中重合部分的像素序
号的集合; 代表这个集合中像素序号的数量;wc控制第二项的影响权重;这个距离计算公式用于检索一个头发形状以及头发的方向都尽可能接近的发型,检索结果如图9所示。
[0069] 4)条带网格头发与头部融合
[0070] 预先在人体头部网格上划定头壳区域,即认为发根应只出现在这个区域;对条带头发的位置进行修正,修正方法如下:
[0071] a)对头发整体位置进行修正:在每个条带头发网格的根部顶点 寻找头部网格头壳区域的最近点 它们分别构成顶点集合vroot和vFLAME,然后计算一个变换矩阵MT,使得经过这个变换后的vroot与vFLAME间的距离最小;vroot经过MT变换后记为[0072] b)对每根头发带位置进行修正:为 中的每个顶点 寻找头部网格上头壳区域的最近点 然后计算 到 的平移量为Troot,使用该平移量对 所在头发带进行整体平移操作。
[0073] 综上所述,在采用以上方案后,本发明提出的一种基于单张图片重建三维头发的方法,重建的头发模型符合输入图片,且有利于实时渲染。本头发重建方法的技术特点在于:
[0074] a)将头发丝模型转换为条带网格头发模型,利用方向约束调整条带网格的朝向;
[0075] b)生成条带网格头发模型,构造出一个包含686个条带网格头发模型的头发数据库,并为生成的条带网格头发模型生成检索用的头发形状检索图,头发形状特征向量,头发方向检索图;
[0076] c)从输入图片中获得头发区域的形状检索图、形状特征向量和方向图,并根据头发距离公式从条带网格头发模型数据库中计算并检索出与输入图片头发区域最相似的头发模型;
[0077] d)利用整体和局部变换将中检索出的头发模型贴合到人头网格模型中。
[0078] 本发明经过实验验证其可行性,能广泛用于不同输入图像的头发重建工作;头发的渲染方式如图7所示;头发重建时间如图8所示;对头发发型检索的结果如图9所示(排在最前面的发型最相似);图10展示本方法与Cao等方法在头发重建效果的对比,可以看到,本方法构造的头发有比较完整的结构,其边缘也有比较好的头发丝过渡感;Cao等方法重建的是粗糙的网格,不是完整的头发重建;本方法重建的条带网格结果适合于现有的实时渲染管线。
[0079] 从上述结果可以看出,本发明重建结果与输入图片相似度高,重建结果完整,重建结果适合于现有实时渲染管线,值得推广。
[0080] 以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈