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

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

Info

Publication number
CN108629834B
CN108629834B CN201810438459.8A CN201810438459A CN108629834B CN 108629834 B CN108629834 B CN 108629834B CN 201810438459 A CN201810438459 A CN 201810438459A CN 108629834 B CN108629834 B CN 108629834B
Authority
CN
China
Prior art keywords
hair
model
strip
retrieval
grid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810438459.8A
Other languages
English (en)
Other versions
CN108629834A (zh
Inventor
李桂清
何华赟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201810438459.8A priority Critical patent/CN108629834B/zh
Publication of CN108629834A publication Critical patent/CN108629834A/zh
Application granted granted Critical
Publication of CN108629834B publication Critical patent/CN108629834B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

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

Description

一种基于单张图片的三维头发重建方法
技术领域
本发明涉及计算机图形学和三维动画制作的技术领域,尤其是指一种基于单张图片的三维头发重建方法。
背景技术
人类既是各种活动的主体,又是很多应用的对象,因而虚拟现实应用大都不可避免以人为中心。人体表面形状及其运动的重建在这类应用中起到关键作用,从日常生活、游戏动画、教育培训到工业设计,构建高度真实的个性化虚拟人体静态模型和动态几何都日渐显示出其重要性。例如,在虚拟试衣中,除了身体形状和运动信息,试衣人的脸部表情、头发飘舞等,都会对体验效果产生影响。而在很多虚拟现实应用中,场景中的人物外观的逼真程度是衡量沉浸感强弱的一个重要指标。头发重建是构建真实人物外观的一个重要步骤。
以往的头发重建工作往往针对的是头发丝的重建。虽然使用头发丝进行重建可以最终渲染出非常逼真的结果,但这个渲染过程往往是离线的。在目前虚拟现实,3D游戏等应用场景中,用头发丝进行头发重建,不仅需要较大的存储空间,而且渲染难度较大,不利于其在实时环境中进行应用。使用头发丝这种无网格的表示形式也与目前实时渲染管线中常用的三角网格表示形式不匹配。因此本发明考虑的是针对单张图片进行条带网格头发的重建,而不是头发丝的重建。生成的头发带模型可以很方便地用在现有的游戏引擎,如Unity3D中。
发明内容
本发明针对目前三维头发重建工作不利于实时渲染的问题,提出了一种基于单张图片的三维头发重建方法,可以根据人脸图像重建出形状与原图接近的,可用于实时渲染的三维头发模型。
为实现上述目的,本发明所提供的技术方案为:一种基于单张图片的三维头发重建方法,包括以下步骤:
1)条带网格头发模型生成
将头发丝模型转换为条带网格头发模型,其中利用方向约束调整条带网格的朝向;
2)条带网格头发模型数据库构建
使用步骤1)方法生成条带网格头发模型,构造出一个包含686个条带网格头发模型的头发数据库,并为生成的条带网格头发模型生成检索用的头发形状检索图、头发形状特征向量和头发方向检索图;
3)基于图片的发型检索
从输入图片中获得头发形状检索图、头发形状特征向量和头发方向检索图,并根据头发距离公式从步骤2)中获得的条带网格头发模型数据库中计算并检索出与输入图片头发区域最相似的头发模型;
4)条带网格头发与头部融合
利用整体和局部变换将步骤3)中检索出的头发模型贴合到人头网格模型中进行融合。
在步骤1)中,所述的条带网格头发模型生成,其过程为:
首先将头发丝模型转换为条带网格头发模型,其中单个头发丝模型具体转化方法如下:
a)将该头发丝模型{Pj}的重心移动至笛卡尔坐标系的原点,第j条头发丝记为Pj的第i个采样点表示pi=(xi,yi,zi),其用笛卡尔坐标系来表示,p0表示头发丝根的位置,根据公式(1)计算第i个采样点的球坐标(riii):
Figure GDA0002353274920000031
其中arccos为反余弦函数,arctan为反正切函数;利用球坐标计算第i个采样点对应的三个正交方向ET,i,EN,i,EB,i如下:
Figure GDA0002353274920000032
其中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):
Figure GDA0002353274920000033
其中求解的目标为采样点修正角度的集合
Figure GDA0002353274920000034
P={pi}为一条头发丝采样点的集合;
Figure GDA0002353274920000041
表示将Eb,i绕ET逆时针旋转角度
Figure GDA0002353274920000042
N(i)表示与第i个采样点相邻的采样点的序号;wsmooth为平滑项,用于控制角度的平滑程度;在实际求解计算过程中,若ET,i与Diri非常接近时,求解
Figure GDA0002353274920000043
将变得不准确,此时只用平滑项进行约束;
c)实际使用中不需要使用所有的头发丝来生成条带头发,因此使用K-MEANS算法对头发丝进行聚类,聚类数量设置为100,聚类中的特征向量使用的是头发根节点的位置、头发的长度、头发的方向信息;然后以离聚类的中心最近的头发丝作为头发带生成的位置,并按照上面的方法将该头发丝生成头发带;但这样生成的头发带可能不能覆盖整个头部,因此通过在未覆盖区域周围搜索最近的头发带,并将该头发带复制到该区域,迭代多次,直到未覆盖区域的面积小于设定的阈值;
在步骤2)中,所述的条带头发数据库构建,其过程为:
根据a)的条带网格生成方法,将343个头发丝模型转换为条带网格模型,再对头发模型左右翻转,使得最终数据库中共包含686个发型;为了使用头发形状和头发走向这两个信息来检索头发,需要为数据库中的条带网格模型生成检索所用的信息;具体地,首先将头发都根据仿射变换放置在一个统一的人体模型中,然后根据模型人脸中的特征点选择包围盒,确定渲染图的尺寸以及模型在渲染图中的位置,接着使用z-buffer渲染算法生成头发形状检索图;将整个人体都放进去渲染是考虑到在头发长时,只放头部模型时得到的渲染图不符合遮挡关系,可能导致错误的检索结果;为了能检索到符合方向信息的头发模型,需为生成的条带网格模型上色,颜色代表头发的走向,使用z-buffer渲染算法生成方向检索图;为了加快检索的速度,对于头发形状检索图,进一步以人脸为中心,使用极坐标将渲染图均匀分为Nbin个区间,以正上方为极坐标原点,按顺时针方向在每个区间统计头发像素的大小,从而得到Nbin维特征向量;这个特征向量能用于估计头发的形状,有利于对头发模型进行检索;使用的检索图尺寸统一设为宽100,高213;形状检索图使用红色作为头发区域,方向检索图只保留头发区域的颜色值,其它均设为黑色;使用的头发颜色不包含黑色,因此黑色作为背景不会引起歧义。
在步骤3)中,所述的基于图片的发型检索,其过程为:
首先,通过人脸特征点检测库检测出图片上的人脸特征点,根据图片上的人脸特征点计算包围盒,将头发分割图中的头发区域图以及头发方向图都变化到与数据库中检索图一致的尺寸,并计算出头发形状特征向量f;利用Gabor滤波器配合手工交互修正,得到图片头发区域头发丝的走向,这些走向是以有序分段直线的方式来表示的,其中每个分段点都记录颜色信息,接着把这些分段直线都对齐到数据库中的头发方向检索图mt,其中mt对应于发型
Figure GDA0002353274920000051
然后把这些分段直线光栅化,生成与mt相同尺寸的颜色检索图ms,其中ms对应于发型
Figure GDA0002353274920000052
于是发型
Figure GDA0002353274920000053
与发型
Figure GDA0002353274920000054
间距离的具体计算方式如下:
Figure GDA0002353274920000055
其中
Figure GDA0002353274920000056
Figure GDA0002353274920000057
分别代表发型
Figure GDA0002353274920000058
和发型
Figure GDA0002353274920000059
的头发形状的特征向量;
Figure GDA00023532749200000510
Figure GDA00023532749200000511
分别代表发型
Figure GDA00023532749200000512
检索图的第i个像素的颜色值以及发型
Figure GDA00023532749200000513
检索图的第i个像素的颜色值,均为0~255间;
Figure GDA00023532749200000514
代表发型
Figure GDA00023532749200000515
的方向检索图与发型
Figure GDA00023532749200000516
方向检索图中重合部分的像素序号的集合;
Figure GDA00023532749200000517
代表这个集合中像素序号的数量;wc控制第二项的影响权重;这个距离计算公式用于检索一个头发形状以及头发的方向都尽可能接近的发型。
在步骤4)中,所述的条带网格头发与头部融合,其过程为:
预先在人体头部网格上划定头壳区域,即认为发根应只出现在这个区域;对条带头发的位置进行修正,修正方法如下:
a)对头发整体位置进行修正:在每个条带头发网格的根部顶点
Figure GDA0002353274920000061
寻找头部网格头壳区域的最近点
Figure GDA0002353274920000062
它们分别构成顶点集合vroot和vFLAME,然后计算一个变换矩阵MT,使得经过这个变换后的vroot与vFLAME间的距离最小;vroot经过MT变换后记为
Figure GDA0002353274920000063
b)对每根头发带位置进行修正:为
Figure GDA0002353274920000064
中的每个顶点
Figure GDA0002353274920000065
寻找头部网格上头壳区域的最近点
Figure GDA0002353274920000066
然后计算
Figure GDA0002353274920000067
Figure GDA0002353274920000068
的平移量为Troot,使用该平移量对
Figure GDA0002353274920000069
所在头发带进行整体平移操作。
本发明与现有技术相比,具有如下优点与有益效果:
1、重建结果更完整
图10展示本方法与Cao等方法在头发重建效果的对比,可以看到,本方法构造的头发有比较完整的结构,其边缘也有比较好的头发丝过渡感;Cao等方法重建的是粗糙的网格,不是完整的头发重建。
2、重建结果适合于实时渲染
本方法的头发的渲染方式如图7所示,只要提供一些合适的贴图,就可以基于现有游戏引擎对头发进行实时渲染,重建的条带网格结果适合于现有的实时渲染管线。
附图说明
图1为本发明的三维头发重建方法流程图。
图2为本发明所用头发丝数据库示意图。
图3为条带网格和圆柱形网格对比示意图。
图4为无视角约束与有视角约束对比图。
图5为本发明视角约束示意图。
图6为本发明的数据库检索图示意图。
图7为本发明头发渲染示意图。
图8为本发明头发重建算法的时间统计图。
图9为本发明发型检索的结果图。
图10为本发明的重建结果与Cao等结果的对比图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
本实施例所提供的基于单张图片的三维头发重建方法,其具体情况如下:将头发丝模型转化为条带网格模型,并构建条带网格头发模型数据库,给定输入图像,首先从其头发区域提取头发形状检索图,头发形状特征向量和头发方向图作为检索信息,然后从条带网格头发模型数据库中检索出与该检索信息最相似的头发模型,最后把该头发模型贴合到人体头部模型中。以此为基础,本发明提出三维头发重建框架,如图1所示。
本实施例所述的基于单张图片的三维头发重建方法,算法流程如图1所示,包括以下步骤:
1)条带网格头发模型生成
a)将该头发丝模型{Pj}的重心移动至笛卡尔坐标系的原点,第j条头发丝(记为Pj)的第i个采样点表示pi=(xi,yi,zi),其用笛卡尔坐标系来表示,p0表示头发丝根的位置,根据公式(1)计算第i个采样点的球坐标(riii):
Figure GDA0002353274920000071
其中arccos为反余弦函数,arctan为反正切函数;利用球坐标计算第i个采样点对应的三个正交方向ET,i,EN,i,EB,i如下:
Figure GDA0002353274920000081
其中ET,i为第i个采样点沿头发丝轴线的方向;根据采样点pi,以及它的三个正交方向,设定一个半径,然后生成螺旋圆柱网格头发;
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):
Figure GDA0002353274920000082
其中求解的目标为采样点修正角度的集合
Figure GDA0002353274920000083
P={pi}为一条头发丝采样点的集合;
Figure GDA0002353274920000084
表示将Eb,i绕ET逆时针旋转角度
Figure GDA0002353274920000085
N(i)表示与第i个采样点相邻的采样点的序号;wsmooth为平滑项,用于控制角度的平滑程度;在实际求解计算过程中,若ET,i与Diri非常接近时,求解
Figure GDA0002353274920000086
将变得不准确,此时只用平滑项进行约束,如图5所示;
c)实际使用中不需要使用所有的头发丝来生成条带头发,因此使用K-MEANS算法对头发丝进行聚类,聚类数量设置为100,聚类中的特征向量使用的是头发根节点的位置、头发的长度、头发的方向信息;然后以离聚类的中心最近的头发丝作为头发带生成的位置,并按照上面的方法将该头发丝生成头发带;但这样生成的头发带可能不能覆盖整个头部,因此通过在未覆盖区域周围搜索最近的头发带,并将该头发带复制到该区域,迭代多次,直到未覆盖区域的面积小于设定的阈值。
2)条带头发数据库构建
据a)的条带网格生成方法,将343个头发丝模型(如图2所示)转换为条带网格模型,再对头发模型左右翻转,使得最终数据库中共包含686个发型;为了使用头发形状和头发走向这两个信息来检索头发,需要为数据库中的条带网格模型生成检索所用的信息;具体地,首先将头发都根据仿射变换放置在一个统一的人体模型中,然后根据模型人脸中的特征点选择包围盒,确定渲染图的尺寸以及模型在渲染图中的位置,接着使用z-buffer渲染算法生成头发形状检索图;将整个人体都放进去渲染是考虑到在头发长时,只放头部模型时得到的渲染图不符合遮挡关系,可能导致错误的检索结果;为了能检索到符合方向信息的头发模型,需为生成的条带网格模型上色,颜色代表头发的走向,使用z-buffer渲染算法生成方向检索图;为了加快检索的速度,对于头发形状检索图,进一步以人脸为中心,使用极坐标将渲染图均匀分为Nbin个区间,以正上方为极坐标原点,按顺时针方向在每个区间统计头发像素的大小,从而得到Nbin维特征向量;这个特征向量能用于估计头发的形状,有利于对头发模型进行检索;使用的检索图尺寸统一设为宽100,高213;形状检索图使用红色作为头发区域,方向检索图只保留头发区域的颜色值,其它均设为黑色;使用的头发颜色不包含黑色,因此黑色作为背景不会引起歧义;检索图如图6所示。
3)基于图片的发型检索
先通过人脸特征点检测库检测出图片上的人脸特征点,根据图片上的人脸特征点计算包围盒,将头发分割图中的头发区域图以及头发方向图都变化到与数据库中检索图一致的尺寸,并计算出头发形状特征向量f;利用Gabor滤波器配合手工交互修正,得到图片头发区域头发丝的走向,这些走向是以有序分段直线的方式来表示的,其中每个分段点都记录颜色信息,接着把这些分段直线都对齐到数据库中的头发方向检索图mt,其中mt对应于发型
Figure GDA0002353274920000101
然后把这些分段直线光栅化,生成与mt相同尺寸的颜色检索图ms,其中ms对应于发型
Figure GDA0002353274920000102
于是发型
Figure GDA0002353274920000103
与发型
Figure GDA0002353274920000104
间距离的具体计算方式如下:
Figure GDA0002353274920000105
其中
Figure GDA0002353274920000106
Figure GDA0002353274920000107
分别代表发型
Figure GDA0002353274920000108
和发型
Figure GDA0002353274920000109
的头发形状的特征向量;
Figure GDA00023532749200001010
Figure GDA00023532749200001011
分别代表发型
Figure GDA00023532749200001012
检索图的第i个像素的颜色值以及发型
Figure GDA00023532749200001013
检索图的第i个像素的颜色值,均为0~255间;
Figure GDA00023532749200001014
代表发型
Figure GDA00023532749200001015
的方向检索图与发型
Figure GDA00023532749200001016
方向检索图中重合部分的像素序号的集合;
Figure GDA00023532749200001017
代表这个集合中像素序号的数量;wc控制第二项的影响权重;这个距离计算公式用于检索一个头发形状以及头发的方向都尽可能接近的发型,检索结果如图9所示。
4)条带网格头发与头部融合
预先在人体头部网格上划定头壳区域,即认为发根应只出现在这个区域;对条带头发的位置进行修正,修正方法如下:
a)对头发整体位置进行修正:在每个条带头发网格的根部顶点
Figure GDA00023532749200001018
寻找头部网格头壳区域的最近点
Figure GDA00023532749200001019
它们分别构成顶点集合vroot和vFLAME,然后计算一个变换矩阵MT,使得经过这个变换后的vroot与vFLAME间的距离最小;vroot经过MT变换后记为
Figure GDA0002353274920000111
b)对每根头发带位置进行修正:为
Figure GDA0002353274920000112
中的每个顶点
Figure GDA0002353274920000113
寻找头部网格上头壳区域的最近点
Figure GDA0002353274920000114
然后计算
Figure GDA0002353274920000115
Figure GDA0002353274920000116
的平移量为Troot,使用该平移量对
Figure GDA0002353274920000117
所在头发带进行整体平移操作。
综上所述,在采用以上方案后,本发明提出的一种基于单张图片重建三维头发的方法,重建的头发模型符合输入图片,且有利于实时渲染。本头发重建方法的技术特点在于:
a)将头发丝模型转换为条带网格头发模型,利用方向约束调整条带网格的朝向;
b)生成条带网格头发模型,构造出一个包含686个条带网格头发模型的头发数据库,并为生成的条带网格头发模型生成检索用的头发形状检索图,头发形状特征向量,头发方向检索图;
c)从输入图片中获得头发区域的形状检索图、形状特征向量和方向图,并根据头发距离公式从条带网格头发模型数据库中计算并检索出与输入图片头发区域最相似的头发模型;
d)利用整体和局部变换将中检索出的头发模型贴合到人头网格模型中。
本发明经过实验验证其可行性,能广泛用于不同输入图像的头发重建工作;头发的渲染方式如图7所示;头发重建时间如图8所示;对头发发型检索的结果如图9所示(排在最前面的发型最相似);图10展示本方法与Cao等方法在头发重建效果的对比,可以看到,本方法构造的头发有比较完整的结构,其边缘也有比较好的头发丝过渡感;Cao等方法重建的是粗糙的网格,不是完整的头发重建;本方法重建的条带网格结果适合于现有的实时渲染管线。
从上述结果可以看出,本发明重建结果与输入图片相似度高,重建结果完整,重建结果适合于现有实时渲染管线,值得推广。
以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

Claims (4)

1.一种基于单张图片的三维头发重建方法,其特征在于,包括以下步骤:
1)条带网格头发模型生成
将头发丝模型转换为条带网格头发模型,其中利用方向约束调整条带网格的朝向;所述的条带网格头发模型生成,其过程为:
首先将头发丝模型转换为条带网格头发模型,其中单个头发丝模型具体转化方法如下:
a)将该头发丝模型{Pj}的重心移动至笛卡尔坐标系的原点,第j条头发丝记为Pj的第i个采样点表示pi=(xi,yi,zi),其用笛卡尔坐标系来表示,p0表示头发丝根的位置,根据公式(1)计算第i个采样点的球坐标(riii):
Figure FDA0002353274910000011
其中arccos为反余弦函数,arctan为反正切函数;利用球坐标计算第i个采样点对应的三个正交方向ET,i,EN,i,EB,i如下:
Figure FDA0002353274910000012
其中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):
Figure FDA0002353274910000021
其中求解的目标为采样点修正角度的集合
Figure FDA0002353274910000022
P={pi}为一条头发丝采样点的集合;
Figure FDA0002353274910000023
表示将Eb,i绕ET逆时针旋转角度
Figure FDA0002353274910000024
N(i)表示与第i个采样点相邻的采样点的序号;wsmooth为平滑项,用于控制角度的平滑程度;在实际求解计算过程中,若ET,i与Diri非常接近时,求解
Figure FDA0002353274910000025
将变得不准确,此时只用平滑项进行约束;
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对应于发型
Figure FDA0002353274910000041
然后把这些分段直线光栅化,生成与mt相同尺寸的颜色检索图ms,其中ms对应于发型
Figure FDA0002353274910000042
于是发型
Figure FDA0002353274910000043
与发型
Figure FDA0002353274910000044
间距离的具体计算方式如下:
Figure FDA0002353274910000045
其中
Figure FDA0002353274910000046
分别代表发型
Figure FDA0002353274910000047
和发型
Figure FDA0002353274910000048
的头发形状的特征向量;
Figure FDA0002353274910000049
分别代表发型
Figure FDA00023532749100000410
检索图的第i个像素的颜色值以及发型
Figure FDA00023532749100000411
检索图的第i个像素的颜色值,均为0~255间;
Figure FDA00023532749100000412
代表发型
Figure FDA00023532749100000413
的方向检索图与发型
Figure FDA00023532749100000414
方向检索图中重合部分的像素序号的集合;
Figure FDA00023532749100000415
代表这个集合中像素序号的数量;wc控制第二项的影响权重;这个距离计算公式用于检索一个头发形状以及头发的方向接近的发型。
4.根据权利要求1所述的基于单张图片的三维头发重建方法,其特征在于:在步骤4)中,所述的条带网格头发与头部融合,其过程为:
预先在人体头部网格上划定头壳区域,即认为发根应只出现在这个区域;对条带头发的位置进行修正,修正方法如下:
a)对头发整体位置进行修正:在每个条带头发网格的根部顶点
Figure FDA0002353274910000051
寻找头部网格头壳区域的最近点
Figure FDA0002353274910000052
它们分别构成顶点集合vroot和vFLAME,然后计算一个变换矩阵MT,使得经过这个变换后的vroot与vFLAME间的距离最小;vroot经过MT变换后记为
Figure FDA0002353274910000053
b)对每根头发带位置进行修正:为
Figure FDA0002353274910000054
中的每个顶点
Figure FDA0002353274910000055
寻找头部网格上头壳区域的最近点
Figure FDA0002353274910000056
然后计算
Figure FDA0002353274910000057
Figure FDA0002353274910000058
的平移量为Troot,使用该平移量对
Figure FDA0002353274910000059
所在头发带进行整体平移操作。
CN201810438459.8A 2018-05-09 2018-05-09 一种基于单张图片的三维头发重建方法 Active CN108629834B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810438459.8A CN108629834B (zh) 2018-05-09 2018-05-09 一种基于单张图片的三维头发重建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810438459.8A CN108629834B (zh) 2018-05-09 2018-05-09 一种基于单张图片的三维头发重建方法

Publications (2)

Publication Number Publication Date
CN108629834A CN108629834A (zh) 2018-10-09
CN108629834B true CN108629834B (zh) 2020-04-28

Family

ID=63692436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810438459.8A Active CN108629834B (zh) 2018-05-09 2018-05-09 一种基于单张图片的三维头发重建方法

Country Status (1)

Country Link
CN (1) CN108629834B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109685876B (zh) * 2018-12-21 2020-11-03 北京达佳互联信息技术有限公司 毛发渲染方法、装置、电子设备及存储介质
CN109857311A (zh) * 2019-02-14 2019-06-07 北京达佳互联信息技术有限公司 生成人脸三维模型的方法、装置、终端及存储介质
CN112767536B (zh) * 2021-01-05 2024-07-26 中国科学院上海微系统与信息技术研究所 一种对象的三维重建方法、装置、设备及存储介质
CN112862807B (zh) * 2021-03-08 2024-06-25 网易(杭州)网络有限公司 基于头发图像的数据处理方法及装置
CN112991523B (zh) * 2021-04-02 2023-06-30 福建天晴在线互动科技有限公司 一种高效自动化的头发匹配头型生成方法及其生成装置
CN113269822B (zh) * 2021-05-21 2022-04-01 山东大学 用于3d打印的人物发型肖像重建方法及系统
CN113269888B (zh) * 2021-05-25 2022-08-19 山东大学 一种发型三维建模方法、人物三维建模方法及系统
CN114022395B (zh) * 2022-01-06 2022-04-12 广州卓腾科技有限公司 一种证件照头发颜色矫正方法、装置及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5252074A (en) * 1991-10-25 1993-10-12 Pivot Point International, Inc. Magnetic three-dimensional analysis system for hairdressing education
CN102800129A (zh) * 2012-06-20 2012-11-28 浙江大学 一种基于单幅图像的头发建模和肖像编辑方法
CN103955962A (zh) * 2014-04-21 2014-07-30 华为软件技术有限公司 一种虚拟人头发生成的装置及方法
CN104376597A (zh) * 2014-12-05 2015-02-25 北京航空航天大学 一种基于多方向约束的头发重建方法
CN105405163A (zh) * 2015-12-28 2016-03-16 北京航空航天大学 一种基于多方向场的逼真的静态头发建模方法
CN106960465A (zh) * 2016-12-30 2017-07-18 北京航空航天大学 一种基于方向场和螺旋线匹配的单幅图像头发重建方法
CN107146273A (zh) * 2017-05-11 2017-09-08 北京航空航天大学 一种面向基于图像头发建模的自适应浮动切线匹配方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5252074A (en) * 1991-10-25 1993-10-12 Pivot Point International, Inc. Magnetic three-dimensional analysis system for hairdressing education
CN102800129A (zh) * 2012-06-20 2012-11-28 浙江大学 一种基于单幅图像的头发建模和肖像编辑方法
CN103955962A (zh) * 2014-04-21 2014-07-30 华为软件技术有限公司 一种虚拟人头发生成的装置及方法
CN104376597A (zh) * 2014-12-05 2015-02-25 北京航空航天大学 一种基于多方向约束的头发重建方法
CN105405163A (zh) * 2015-12-28 2016-03-16 北京航空航天大学 一种基于多方向场的逼真的静态头发建模方法
CN106960465A (zh) * 2016-12-30 2017-07-18 北京航空航天大学 一种基于方向场和螺旋线匹配的单幅图像头发重建方法
CN107146273A (zh) * 2017-05-11 2017-09-08 北京航空航天大学 一种面向基于图像头发建模的自适应浮动切线匹配方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Real-time Hair Mesh Simulation";Wu K etc.;《ACM Siggraph Symposium on Interactive 3d Graphics&Game》;20160228;全文 *
"基于深度扫描仪的高辨识度三维人体模型";韩凯等;《图学学报》;20150831;第36卷(第4期);全文 *

Also Published As

Publication number Publication date
CN108629834A (zh) 2018-10-09

Similar Documents

Publication Publication Date Title
CN108629834B (zh) 一种基于单张图片的三维头发重建方法
Zhuang et al. Dreameditor: Text-driven 3d scene editing with neural fields
US9792725B2 (en) Method for image and video virtual hairstyle modeling
US11217010B2 (en) Sketch-based shape-preserving tree animation method
Hu et al. Self-supervised 3d mesh reconstruction from single images
EP1986158B1 (en) Decorating computer generated character with surface attached features
Zhang et al. Avatarverse: High-quality & stable 3d avatar creation from text and pose
Shen et al. Deepsketchhair: Deep sketch-based 3d hair modeling
CN113593001A (zh) 目标对象三维重建方法、装置、计算机设备和存储介质
CN111524226B (zh) 讽刺肖像画的关键点检测与三维重建方法
CN116385667B (zh) 三维模型的重建方法、纹理重构模型的训练方法以及装置
CN113822965A (zh) 图像渲染处理方法、装置和设备及计算机存储介质
EP1986157B1 (en) Placing skin-attached features on a computer generated character
CN115861525A (zh) 基于参数化模型的多视图人脸重建方法
Fei et al. 3d gaussian splatting as new era: A survey
Du et al. SAniHead: Sketching animal-like 3D character heads using a view-surface collaborative mesh generative network
Maxim et al. A survey on the current state of the art on deep learning 3D reconstruction
Kazmi et al. Efficient sketch‐based creation of detailed character models through data‐driven mesh deformations
Yu et al. Mean value coordinates–based caricature and expression synthesis
Bhardwaj et al. SingleSketch2Mesh: generating 3D mesh model from sketch
CN115984510A (zh) 一种风格化人脸纹理建模方法及系统、设备、存储介质
Chen et al. Character animation creation using hand-drawn sketches
Kim et al. Ae-nerf: Auto-encoding neural radiance fields for 3d-aware object manipulation
CN118521699B (zh) 一种虚拟人三维头发丝发型的生成方法及系统
Cheng Retracted: Application of VR computer image technology in 3D virtualization of sports human science

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant