基于3d头发模板进行3d头发建模的设备和方法

文档序号:6333355阅读:380来源:国知局
专利名称:基于3d头发模板进行3d头发建模的设备和方法
技术领域
本发明涉及三维(3D)头发建模技术,具体说来,涉及一种能够自动进行3D头发建模的有效设备和方法,其中,利用通过简单的拍摄装置(例如,普通相机)捕获的头像,基于 3D头发模板来进行3D头发建模。
背景技术
人的头发(S卩,发型)在非真实渲染、人物肖像和数字人物动画中是非常重要的部分,头发的创建在虚拟形象(avatar)和娱乐应用中显著增强了虚拟角色的真实感。因此, 针对3D角色的头发建模是3D计算机图形和计算机视觉领域的关键问题。这项技术允许在虚拟/增强现实的环境中复制出真实的头发外貌。在3D计算机图形领域中,3D建模是指产生任意三维对象的算术表示的处理,该处理产生的结果称为3D模型。目前的多数3D头发建模主要通过手动来实现模型的创建,这种方式不仅耗费时间,而且需要大量的人为参与。此外,其它典型的3D头发建模方式通常需要专门的拍摄设备(如"HairPhotobooth :Geometirc and Photometirc Acquisition of Real Hairstyles, Paris, Adobe, SIGGRAPH 08”中采用的是非常复杂的拍摄装置,包括 16个数码相机、150个LED光源以及在大型圆顶蓬上固定的3个DLP投影仪),在这种方式中,需要拍摄大量的图像,从而花费相当长的时间(如,几个小时)才可创建出3D头发模型。另外,某些头发产生方法(如第7609261号美国专利公开的头发建模方法)所需要的输入(如,表面模型、基准头发(guide hairs)和头发簇(clump hairs))是难以计算的,并且采用的方式为重复处理现有的头发以在最终的发型中产生更多的头发细节(由于头发是基于同样的基础而生成,因此可能会导致头发的外观不真实),某些发型产生方法(如第 7418371号美国专利)采用的算法非常复杂(包括头发渲染模块),并且需要人为参与到具体的处理过程中。另外需要注意的是,某些针对非头发的3D建模方法无法直接应用于3D头发建模, 这是由人的头发本身的特质所决定的。具体说来,与其它建模对象相比,头发在个体之间的差异更大。换言之,不同的个体可能具有非常类似的脸型或头部形状,但是他们的发型却各有自己的特色和个性,所表现出的差别也就难以通过简单的建模方式来体现。因此,可以看出,在现有技术中,无法基于普通拍摄装置捕获的图像而有效地自动进行3D头发建模。

发明内容
本发明的目的在于提供一种基于3D头发模板进行3D头发建模的设备和方法,根据所述3D头发建模设备和方法,能够利用通过简单的拍摄装置(例如,普通相机)捕获的头像,基于3D头发模板来自动实现有效的3D头发建模。根据本发明的一方面,提供一种基于3D头发模板进行3D头发建模的设备,所述设备可包括3D头发模板库,用于预先存储一个或多个3D头发模板;以及3D头发模型产生单元,用于接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对由3D头发模板库提供的一个或多个3D头发模板进行操作,从而产生真实3D头发模
型所述3D头发模型产生单元可包括头发分类单元,用于接收正视头发图像,基于所述正视头发图像的特点得出所述正视头发图像的发型类别,并在由3D头发模板库提供的多个3D头发模板中找出与所述发型类别相应的3D头发模板;以及头发校准单元,用于结合3D头部模型对头发分类单元找出的3D头发模型进行校准,从而产生真实3D头发模型。所述头发分类单元可包括头发形状检测器,用于检测正视头发图像的头发形状; 边界细化器,用于对由头发形状检测器检测的头发形状进行边界细化;形状特征提取器,用于从由边界细化器细化的头发边界提取形状特征;分类定义器,用于将3D头发模板库提供的多个3D头发模板划分为多个发型类别;分类器,用于基于由形状特征提取器提取的形状特征来确定所述正视头发图像的发型类别,并在分类定义器划分出的多个发型类别的3D 头发模板中找出与所述正视头发图像的发型类别相应的3D头发模板。头发校准单元可计算3D头发模板所基于的参考头部模型与3D头发模板之间的偏差,然后计算用于使得参考头部模型变为3D头部模型的变换参数,将计算出的参考头部模型与3D头发模板之间的偏差变换为针对3D头部模型的偏差,并将变换后的偏差应用于3D 头部模型。头发形状检测器可通过面部检测、皮肤颜色建模、头发颜色建模、标准图像处理来输出头发形状的轮廓。述形状特征提取器提取的形状特征可包括头发的量、头发的对称性、头发分线位置和头发的长度。3D头发模板库可预先存储应用于所有相关正视头发图像的公共3D头发模板,并且所述3D头发模型产生单元包括头发变形单元,用于接收正视头发图像和3D头部模型, 基于所述正视头发图像的特点并结合3D头部模型对由3D头发模板库提供的公共3D头发模板进行变形处理,从而产生真实3D头发模型。头发变形单元可包括知识数据定义器,用于定义公共3D头发模板的关键点以及依据关键点划分的区域;头发形状检测器,用于检测正视头发图像的头发形状;头发划分器,用于将由头发形状检测器检测到的头发形状划分为普通部分和个性部分,其中,普通部分指示头发在不同个体之间比较类似的部分,个性部分指示头发在不同个体之间差异较大的部分;发片近似器,用于对由头发划分器划分出的个性部分进行近似处理;发片建模器, 用于对发片近似器处理后的个性部分的发片进行3D建模;关键点的2D匹配器,用于结合 3D头部模型,将知识数据定义器所定义的公共3D头发模型的边界关键点与由头发划分器划分出的普通部分的边界进行匹配;关键点的3D确定器,用于基于关键点的2D匹配器所匹配的结果并结合3D头部模型和知识数据定义器定义的区域来确定关键点的3D坐标;3D数据内插器,用于基于由关键点的3D确定器确定的关键点的3D坐标,结合知识数据定义器定义的区域来进行3D数据内插;模型合成器,用于将发片建模器输出的各个3D发片与3D数据内插器输出的内插结果相合成;以及纹理产生器,用于针对模型合成器合成的结果产生相应的纹理,从而产生真实3D头发模型。所述关键点可包括与头发的外边界和内边界对应的关键点、3D头发模板的正视图中最向前突出的最前方关键点、作为3D头发模板后脑上的头发中的固定区域的边界点的固定线关键点。所述依据关键点划分的区域可包括正视顶端区域,位于内边界上的关键点与最前方关键点之间;正视前向区域,位于最前方关键点与外边界上的关键点之间;过渡区域, 位于外边界上的关键点与固定线关键点之间;固定区域,为3D头发模板中除了正视顶端区域、正视前向区域和过渡区域之外的剩余部分。3D数据内插器可针对不同的区域采取不同的内插方法。头发变形单元可用于接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对产生的真实3D头发模型进行变形处理,从而输出变形处理后的真实3D头发模型。根据本发明的另一方面,提供一种基于3D头发模板进行3D头发建模的方法,所述方法可包括预先存储一个或多个3D头发模板;以及接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对一个或多个3D头发模板进行操作,从而产生真实3D头发模型。接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对一个或多个3D头发模板进行操作,从而产生真实3D头发模型的步骤可包括接收正视头发图像,基于所述正视头发图像的特点得出所述正视头发图像的发型类别,并在多个 3D头发模板中找出与所述发型类别相应的3D头发模板;以及结合3D头部模型对找出的3D 头发模型进行校准,从而产生真实3D头发模型。得出所述正视头发图像的发型类别的步骤可包括检测正视头发图像的头发形状;对检测的头发形状进行边界细化;从细化的头发边界提取形状特征;将提供的多个3D 头发模板划分为多个发型类别;基于提取的形状特征来确定所述正视头发图像的发型类另IJ,并在划分出的多个发型类别的3D头发模板中找出与所述正视头发图像的发型类别相应的3D头发模板。校准的步骤可包括计算3D头发模板所基于的参考头部模型与3D头发模板之间的偏差,然后计算用于使得参考头部模型变为3D头部模型的变换参数,将计算出的参考头部模型与3D头发模板之间的偏差变换为针对3D头部模型的偏差,并将变换后的偏差应用于3D头部模型。可通过面部检测、皮肤颜色建模、头发颜色建模、标准图像处理来输出头发形状的轮廓。预先存储的是可应用于所有相关正视头发图像的公共3D头发模板,并且接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对一个或多个3D头发模板进行操作,从而产生真实3D头发模型的步骤可包括接收正视头发图像和 3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对公共3D头发模板进行变形处理,从而产生真实3D头发模型。 变形处理可包括定义公共3D头发模板的关键点以及依据关键点划分的区域;检测正视头发图像的头发形状;将检测到的头发形状划分为普通部分和个性部分,其中,普通部分指示头发在不同个体之间比较类似的部分,个性部分指示头发在不同个体之间差异较大的部分;对划分出的个性部分进行近似处理;对近似处理后的个性部分的发片进行3D建模;结合3D头部模型,将所定义的公共3D头发模型的边界关键点与划分出的普通部分的边界进行匹配;基于所匹配的结果并结合3D头部模型和定义的区域来确定关键点的3D坐标; 基于确定的关键点的3D坐标,结合定义的区域来进行3D数据内插;将建模后的各个3D发片与内插结果相合成;以及针对合成的结果产生相应的纹理,从而产生真实3D头发模型。


通过下面结合附图进行的对实施例的描述,本发明的上述和/或其它目的和优点将会变得更加清楚,其中图1是示出根据本发明示例性实施例的3D头发建模设备的框图;图2示出图1所示的3D头发建模设备中的3D模型产生单元的示例性详细结构;图3示出图2所示的3D模型产生单元中的头发分类单元的示例性详细结构;图4示出根据本发明示例性实施例的利用图3所示的3D头发建模设备进行3D头发建模的方法的流程图;图5示出根据本发明示例性实施例的头发形状检测方法的流程图;图6示出根据本发明示例性实施例在面部检测到的特征点的位置;图7示出根据本发明示例性实施例用于皮肤颜色建模和头发颜色建模的矩形区域;图8示出根据本发明示例性实施例的检测出的头发形状的示图;图9示出根据本发明示例性实施例的细化后的头发外边界的示图;图10示出根据本发明示例性实施例的利用人体测量信息来采用针对头部的近似模型的示图;图11是示出根据本发明示例性实施例的作为头发形状特征的头发的量的示图;图12示出根据本发明示例性实施例的头发分线位置的示例;图13示出根据本发明示例性实施例的侧边头发长度的示图;图14示出根据本发明示例性实施例的与每种特征对应的各个发型;图15示出根据本发明示例性实施例的选择对应3D头发模板的示图;图16示出根据本发明示例性实施例进行3D头发模板校准的示图;图17示出图1所示的3D头发建模设备中的3D模型产生单元的另一示例性详细结构;图18示出图17所示的3D模型产生单元中的头发变形单元的示例性详细结构;图19示出根据本发明另一示例性实施例的利用图18所示的3D头发建模设备进行3D头发建模的方法的流程图;图20示出根据本发明示例性实施例的公共3D头发模板的示图;图21到图23示出图20所示的公共3D头发模板中定义的关键点;图24示出根据本发明示例性实施例的3D头发模板依据关键点所划分的各个区域;图25示出根据本发明示例性实施例的头发形状检测结果;图26示出根据本发明示例性实施例将头发形状划分为普通部分和个性部分的示图27示出根据本发明示例性实施例对头发的个性部分进行近似的结果;以及图28到图30示出了利用根据本发明的3D头发建模方法和设备所得到的3D头发模型。
具体实施例方式现将详细参照本发明的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。图1是示出根据本发明示例性实施例的3D头发建模设备的框图。如图1所示,根据本发明示例性实施例的3D头发建模设备包括3D头发模型产生单元10和3D头发模板库20,其中,3D头发模板库20用于预先存储一个或多个3D头发模板,3D头发模型产生单元 10用于接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对由3D头发模板库20提供的一个或多个3D头发模板进行操作,从而产生真实3D头发模型。这里,3D头发模板可由相关人员预先手动设计好,而3D头部模型是指正视头发图像的主人公的3D头部模型。此外,该主人公的正视头发图像完全可以由普通的拍摄设备(例如,数码相机)来获取。从图1可以看出,本发明提出的3D头发建模方式主要借助于事先设计好的3D头发模板,即,依据正视头发图像的特点对所述3D头发模板进行处理,同时,在对3D头发模板的处理中一并反映出主人公的3D头部模型的特点,从而能够在3D头发的实际建模中,不需要人为参与而完全自动地进行,这种方式大大简化了相应的计算复杂度,使得建模处理更加高效。基于本发明的上述总体构思,可采用各种方式来构建具体的3D模型产生单元,以下将参照图2来描述图1所示的3D头发建模设备中的3D模型产生单元10的一种示例性详细结构,其中,所述3D头发模型产生单元10包括头发分类单元100,用于接收正视头发图像,基于所述正视头发图像的特点得出所述正视头发图像的发型类别,并在由3D头发模板库20提供的多个3D头发模板中找出与所述发型类别相应的3D头发模板;头发校准单元 110,用于结合3D头部模型对头发分类单元100找出的3D头发模型进行校准,从而产生真实3D头发模型。至于图2所示的头发分类单元100,可采用各种方式来构建其具体结构,图3示出图2所示的3D模型产生单元10中的头发分类单元100的示例性详细结构,其中,所述头发分类单元100包括头发形状检测器101,用于检测正视头发图像的头发形状;边界细化器 102,用于对由头发形状检测器101检测的头发形状进行边界细化;形状特征提取器103,用于从由边界细化器102细化的头发边界提取形状特征;分类定义器104,用于将3D头发模板库20提供的多个3D头发模板划分为多个发型类别;分类器105,用于基于由形状特征提取器103提取的形状特征来确定所述正视头发图像的发型类别,并在分类定义器104划分出的多个发型类别的3D头发模板中找出与所述正视头发图像的发型类别相应的3D头发模板。图4示出根据本发明示例性实施例的利用图3所示的3D头发建模设备进行3D头发建模的方法的流程图。参照图4,在步骤S100,由头发形状检测器101检测正视头发图像的头发形状。这里,可采用对头发形状的自动检测,例如,在所输入的正视头发图像是RGB图像或被转换为RGB图像的情况下,通过图5所示的头发形状检测方法来自动检测头发形状。参照图5,在步骤S101,利用主动形状模型(ASM)方法来检测面部特征点。例如,可检测出眼睛和眉毛的位置以及鼻子和下巴的位置。这些特征点的坐标可表示为X = [Xl, Y1, ... , xn, yn],其中,η 是特征点的数量。图6示出根据本发明示例性实施例在面部检测到的特征点的位置。这些位置的特征点将被用于进行皮肤颜色建模和头发颜色建模。参照回图5,在步骤S102,进行皮肤颜色建模。具体说来,首先,可针对在大量样本图像的皮肤区中选择的三个矩形区域,即,眼睛下方的两个矩形区域以及额头上的一个区域(如图7所示)进行皮肤数据的训练。例如,可针对上述矩形区域中的每个像素构建皮肤模型<Ei; Si, >,其中,Ei表示像素的颜色(例如,R、G、B分量)平均值,Si表示像素的颜色值的标准差,%表示像素的亮度变化的偏差。通过以上皮肤建模过程,可得出%的统计分布(例如,高斯分布),从而确定用于判断是否属于皮肤像素的%阈值。在步骤S103,对正视头发图像进行头发建模。具体说来,假设头发出现在正视图像的特定区域,因此,基于检测的面部特征点来自动确定主要出现头发的区域。例如,图7 中位于前额和鬟角的三个矩形可被设置为可能出现头发的区域。针对这三个区域计算各个像素的颜色平均值和标准差,进而针对每个区域中的各个像素计算其方差,通过将该方差与%阈值进行比较来确定相关像素是属于皮肤还是非皮肤,非皮肤的像素被确定为头发像素,从而作为种子用来分别对每个区域的头发颜色进行建模。在步骤S104,对于以上得到的处理结果进行标准图像处理。例如,使用诸如蚀图 (corrosion)或膨胀(dilatation)技术来填充头发区域中的空洞,从而创建连续的头发区域。在步骤S105,输出按照上述方式检测出的头发形状轮廓,如图8中所示。参照回图4,在步骤SlOO检测出头发形状之后,在步骤S200,由边界细化器102对由头发形状检测器101检测的头发形状进行边界细化。具体说来,从步骤SlOO产生的头发外边界可能会由于不适当的成像条件(诸如不良的照明、噪声和复杂的背景)而恶化。因此,有必要进行边界细化处理来调整边界的位置。可从外部轮廓位于最左下方的点作为起始点来开始进行边界细化,首先,选择外部轮廓上邻近起始点的一点作为结束点,然后,在这两个点之间计算最小代价的搜索路径(可采用DijkStra算法),从而得到一条新的路径, 并将该新的路径替代原本在所述两个点之间的边界部分。接着,将位于新的路径上的原结束点作为新的起始点,并且选择外部轮廓上邻近该起始点的一点作为新的结束点,然后,在这两个点之间再次计算最小代价的搜索路径并得到一条新的路径。以此类推,直到外部轮廓上最右下方的点作为结束点,并进行了相应的路径替换为止。通过上述处理,出现在外部轮廓上的凹形区域逐步趋近于真实的边界形态。改进的效果在图9中示出,其中,细化后的头发外边界与之前的相比更加平滑和自然。在步骤S300,由形状特征提取器103从由边界细化器102细化的头发边界提取形状特征。具体说来,利用人体测量信息来采用针对头部的近似模型(见图10)。如图10所示,假设头部可由2D空间中的椭圆来表示,则两眼之间的中心点SE(可通过检测的特征点得出)被用于确定椭圆中心G的位置,其中,G的横坐标与SE相同,G的纵坐标位于SE之上,与SE之间的距离为眼睛高度的1.8倍。此外,椭圆的短轴r按照下式来计算r = (eX (151. 1/31. 3)) X0. 5,其中,e 为眼睛的长度。
椭圆的长 轴R按照下式来计算R=1.35Xr。在得到头部的上述椭圆近似模型之后,可计算以下四种类型的头发形状特征,分别为 头发的量该类型的形状特征主要包括五个值,分别为左侧头发量、中间头发量、右侧头发量、左侧头发过渡角、右侧头发过渡角。图11是示出根据本发明示例性实施例的作为头发形状特征的头发的量的示图,如图11所示,内边界与椭圆的交点与椭圆中心的连线将整个头发部分划分为左侧、中间和右侧。其中,左侧头发量由左侧区域中外边界与内边界之间的距离的平均值来表示,中间头发量由中间区域中外边界与椭圆弧之间的距离的平均值来表示,右侧头发量由右侧区域中外边界与内边界之间的距离的平均值来表示。相应的过渡角由所述交点与椭圆中心的连线分别与椭圆中线之间的夹角来表示。 头发的对称性该类型的形状特征主要是指左侧头发量与整个头发量的比率, 该值反映了头发的对称情况。 头发分线位置分线的位置通常通过外边界的凹陷点和/或内边界的凹陷点来确定。图12示出根据本发明示例性实施例的头发分线位置的示例。 头发的长度该类型的形状特征主要包括三个值,分别为计算头发的量时所涉及的最大距离值和最小距离值以及侧边头发长度。图13示出根据本发明示例性实施例的侧边头发长度的示图,所述侧边头发长度指的是眼睛到对应的内边界最左下/最右下点之间的垂直高度。在提取了上述头发形状特征之后,可使用这些特征来描述相应的发型类别。此外,对于3D头发模板库20中提供的多个3D头发模板,分类定义器104将它们划分为多个发型类别。作为示例,可按照以下分类规则来进行分类具体针对男性的短发样式,可定义26种发型(在此,不考虑长发和秃头的情况)。应理解,所述26种发型仅仅作为示例,还可以针对不同的人群划分出各种发型类别。对于所述26种发型,可根据以下四种特征来进行划分· S:头发分线位置(左、右、中、无)· C 头发侧边角度(圆滑、成角度)· V:头发的量(厚、薄)· T 头发_皮肤过渡线(高、低)其中,当过渡线⑴为低时,特征“头发侧边角度(C)”被忽略不计。因此,针对上述四种特征的不同取值,可定义如下26种发型对于侧边分线的情况12种类型=2 (S) X 2 (C) X 2 (V) X (T,高)+2(S) X2(V) X (T,低)对于中间分线的情况10种类型=2 (C,左)X 2 (C,右)X 2 (V) X(T,高)+2(V) X (T,低)没有分线的情况4种类型=2 (V) X 2 (T)图14示出根据本发明示例性实施例的与每种特征对应的各个发型。在图14中, (a)表示头发分线位置,从左到右依次示出分线位置位于左、右、中以及无分线的情况;(b) 表示头发侧边角度,从左到右依次示出成角度和圆滑的情况;(c)表示头发的量,从左到右依次示出头发的量为厚和薄的情况;(d)表示头发-皮肤过渡线,从左到右依次示出过渡线处于低位和高位的情况。

在步骤S400,由分类器105基于由形状特征提取器103提取的形状特征来确定所述正视头发图像的发型类别,并在分类定义器104划分出的多个发型类别的3D头发模板中找出与所述正视头发图像的发型类别相应的3D头发模板,以进行后续的校准处理。图15 示出根据本发明示例性实施例的选择对应3D头发模板的示图。参照图15,由于发型类别的对应是以2D图像之间的匹配为基础来执行的,因此,3D头发模板库中的3D头发模板被投影为2D形式,此时,将提取的形状特征与投影后的头发模板应用于常用的分类机,如,支持向量机(SVM),从而在多个发型类别的3D头发模板中找出与所述正视头发图像的发型类别相应的3D头发模板。在步骤S500,由头发校准单元110结合3D头部模型对头发分类单元100找出的 3D头发模型进行校准,从而产生真实3D头发模型。具体说来,由于在步骤S400中所选择的3D头发模板在事先创建时并没有参照具体进行头发建模的主人公的头部3D模型,而仅仅是基于参考头部模型创建的,因此,有必要结合所述主人公的3D头部模型对选择的3D头发模板进行校准。图16示出根据本发明示例性实施例进行3D头发模板校准的示图。参照图16,首先,计算参考头部模型与3D头发模板之间的偏差,然后,计算用于使得参考头部模型变为 3D头部模型(通过尺度变换来近似)的变换参数。然后,将计算出的参考头部模型与3D头发模板之间的偏差变换(例如,尺度变换)为针对3D头部模型的偏差,并将变换后的偏差应用于3D头部模型(例如,通过现有的“laplacian表面编辑”),从而创建校准后的3D头发模型。通过以上的描述,可以看出,本发明的3D头发建模设备的示例性实施例能够利用通过简单的拍摄装置(例如,普通相机)捕获的头像,基于事先创建的3D头发模板来进行 3D头发建模。应注意,对于头发分类单元100的构建并不限于图3示出的具体结构,在了解本发明基本构思的情况下,本领域技术人员可采用各种方式来实现本发明的3D头发建模设备。例如,不同的单元可被进一步合并或进一步划分,或者在统一的处理器中实现。以下将参照图17来描述图1所示的3D头发建模设备中的3D模型产生单元10的另一种示例性详细结构,其中,3D头发模板库20预先存储应用于所有相关正视头发图像的公共3D头发模板,并且所述3D头发模型产生单元10包括头发变形单元200,用于接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对由3D头发模板库提供的公共3D头发模板进行变形处理,从而产生真实3D头发模型。至于图17所示的头发变形单元200,可采用各种方式来构建其具体结构,图18示出图17所示的3D模型产生单元10中的头发变形单元200的示例性详细结构,其中,头发变形单元200包括知识数据定义器201,用于定义公共3D头发模板的关键点以及依据关键点划分的区域;头发形状检测器202,用于检测正视头发图像的头发形状;头发划分器203, 用于将由头发形状检测器202检测到的头发形状划分为普通部分和个性部分,其中,普通部分指示头发在不同个体之间比较类似的部分,个性部分指示头发在不同个体之间差异较大的部分;发片近似器204,用于对由头发划分器203划分出的个性部分进行近似处理;发片建模器205,用于对发片近似器204处理后的个性部分的发片进行3D建模;关键点的2D匹配器208,用于结合3D头部模型,将知识数据定义器201所定义的公共3D头发模型的边界关键点与由头发划分器203划分出的普通部分的边界进行匹配;关键点的3D确定器 209,用于基于关键点的2D匹配器208所匹配的结果并结合3D头部模型和知识数据定义器 201定义的区域来确定关键点的3D坐标;3D数据内插器210,用于基于由关键点的3D确定器209确定的关键点的3D坐标,结合知识数据定义器201定义的区域来进行3D数据内插; 模型合成器206,用于将发片建模器205输出的各个3D发片与3D数据内插器210输出的内插结果相合成;纹理产生器207,用于针对模型合成器206合成的结果产生相应的纹理,从而产生真实3D头发模型。图 19示出根据本发明另一示例性实施例的利用图18所示的3D头发建模设备进行3D头发建模的方法的流程图。参照图19,在步骤S10,由知识数据定义器201定义公共 3D头发模板的关键点以及依据关键点划分的区域。具体说来,在该实施例中,3D头发模板库20中只有公共3D头发模板,作为示例,对于普通男性的短发样式而言,该公共3D头发模板如图20所示,其中,(a)、(b)、(c)示出面部模板上的头发部分,(d)示出模板头发的纹理。 在该步骤中,知识数据定义器201将3D头发模板中的某些点定义为关键点,所述关键点如图21到图23所示,其中,图21示出与头发的外边界和内边界对应的关键点,图22示出正视图中最向前突出的“最前方”关键点,图23示出作为后脑上的头发中的固定区域的边界点的“固定线”关键点,这部分关键点的3D坐标在建模过程中保持不变。图21到图23示出的上述关键点将整个3D头发模板划分为不同的区域。图24示出根据本发明示例性实施例的3D头发模板依据关键点所划分的各个区域。参照图24,关键点将3D头发模型划分为4个区域,分别为正视顶端区域,位于内边界关键点与最前方关键点之间;正视前向区域,位于最前方关键点与外边界关键点之间;过渡区域,位于外边界关键点与固定线关键点之间;固定区域,为3D头发模板中除了正视顶端区域、正视前向区域和过渡区域之外的剩余部分。在步骤S20,由头发形状检测器202检测正视头发图像的头发形状,其中,头发形状检测器202的构造可与图3中的头发形状检测器101相同,因此,步骤S20类似于图4中的步骤S100。图25示出根据本发明示例性实施例的头发形状检测结果。参照图25,在检测到的边界形状中,包括以下项左/右底点,在图25中用圆圈标出;头发外边界,作为头发与背景之间的顶部曲线;头发内边界,作为头发与面部皮肤之间的底部曲线。在步骤S30,由头发划分器203将由头发形状检测器202检测到的头发形状划分为普通部分和个性部分。应注意,可采用不同的方式来进行上述划分。一种可行的方式是计算头发内边界的凸包,从而凸包之上为普通部分,剩余部分为个性部分,如图26中的浅色线条所示。以下将分别针对普通部分和个性部分采取不同的建模处理。在步骤S40,由关键点的2D匹配器208结合3D头部模型,将知识数据定义器201 所定义的公共3D头发模型的边界关键点与由头发划分器203划分出的普通部分的边界进行匹配。具体说来,关键点的2D匹配器208将3D头发模板透视地投影为2D图像。然后, 可分别将3D头发模板与2D头发边界的左底点和右底点进行匹配。此后,对于头发外边界 /内边界上的每个3D关键点(如图21所示),计算从3D头部模型的预定中心点指向2D图像平面的方向,并沿着这一方向投影到2D图像平面,从而在2D头发边界上找到与外边界/内边界关键点对应的点。在步骤S50,由关键点的3D确定器209基于关键点的2D匹配器208所匹配的结果并结合3D头部模型和知识数据定义器201定义的区域来确定关键点的3D坐标。具体说来,对于内边界关键点,通过将沿上述方向从2D图像上的对应关键点反向透射到与3D头部模型相交来得到内边界关键点的3D坐标。对于外边界关键点,也采用反向投影的方式,并保持外边界关键点在3D头发 模板中的深度值。对于最前方关键点,它们到达外边界和内边界的相对位置保持不变,从而来确定其3D坐标。对于固定线关键点,它们在3D头发模板中的3D坐标保持不变。通过以上方式,结合3D头部模型而获得了各个关键点的3D坐标。在步骤S60,由3D数据内插器210基于由关键点的3D确定器209确定的关键点的 3D坐标,结合知识数据定义器201定义的区域来进行3D数据内插。作为一种优选方式,在此,采用不同的方式对各个区域进行3D数据内插。对于正视顶端区域和过渡区域中的点, 通过简单的内插算法来保持它们相对于外边界的方向。对于其它点,采用普通的内插算法 (例如,径向基函数RBF内插方法)来进行3D数据内插。上述方式的好处在于有利于产生头发分线效果并同时产生平滑的形状。以上即完成了对头发的普通部分的3D建模。此外,对于头发的个性部分,在步骤S70,由发片近似器204对由头发划分器203划分出的个性部分进行近似处理。例如,可采用折线拟合算法对个性部分进行近似,从而丢弃个性部分中较小的发片(patch)。发片近似的结果在图27中示出,参照图27,通过线段来近似地重新确定内边界。采用三角测量方法将近似后的个性部分表示为一组三角形。在步骤S80,由发片建模器205对发片近似器204处理后的个性部分的发片进行 3D建模,从而确定个性部分中各个点的3D坐标,其中,将个性部分的2D点反向投影到3D空间中,计算与面部相交的位置,从而相应地确定3D坐标。同时,还对于个性部分中的每个点产生纹理坐标。实际上,个性部分中的每个发片作为多边形被包含在更大的三角形中,该三角形被映射到纹理坐标空间。然后,通过保留个性部分中的每个点在正视头发图像上的质心坐标来产生所述每个点的纹理坐标。以上即完成了对头发的普通部分的3D建模。在步骤S90,由模型合成器206将发片建模器205输出的各个3D发片与3D数据内插器210输出的内插结果相合成,并删除重复的点。在步骤S95,由纹理产生器207针对模型合成器206合成的结果产生相应的纹理, 从而产生真实3D头发模型。具体说来,利用简单的光栅算法,基于纹理坐标以及投影到二维平面上的图像位置将正视头发图像映射到纹理坐标平面。然后,执行纹理组合以将映射的纹理与模板的纹理相结合。作为优选方式,可应用普通的彩色校正算法使得头发模板的纹理外观类似于映射的纹理,并将alpha过渡用于合成上述两种纹理。对于以上示例性实施例,应注意,头发变形单元200的构建并不限于图18示出的具体结构,在了解本发明基本构思的情况下,本领域技术人员可采用各种方式来实现本发明的3D头发建模设备。例如,不同的单元可被进一步合并或进一步划分,或者在统一的处理器中实现。此外,图17和图18的设备中所使用的公共3D头发模板可以是图2和图3的设备中由分类头发单元所选择的与正视头发图像的发型类别相匹配的3D头发模板,从而进一步提高3D头发建模的有效性。根据本发明的3D头发建模设备和方法,不需要人为参与具体的建模过程,仅依靠简单的正视头发图像,即可基于预先创建的3D头发模板来进行3D头发建模。由于将人的头发划分为普通部分和个性部分,并采取了不同的处理方式,因此,使得能够在降低计算复杂度的情况下,利用较为简单的软硬件平台,自动有效地进行3D头发建模。图28到图30 示出了利用根据本发明的3D头发建模方法和设备所得到的3D头发模型,其中,运算速度和相似程度都取得了显著的改善。应注意,根据本发明示例性实施例的3D头发建模方法和设备可被包括在用于动画或虚拟形象的生成装置中,也可应用于照片合成装置、场景生成装置或其它特技生成装置。在上述装置中,除了根据本发明示例性实施例的3D头发建模设备之外,还包括相关对象(诸如动画、虚拟形象、照片和场景等)的数据输入单元、数据分析单元和结果生成单元之外,由于这些单元均属于本发明以外的现有技术,因此,为了避免对本发明的主题造成混淆,在此不进行详细说明。本发明的以上各个实施例仅仅是示例性的,而本发明并不受限于此。本领域技术人员应该理解任何涉及利用预先创建的3D头发模板,结合输入的正视头发图像和3D头部图像来进行3D头发建模的方式均落入本发明的范围之中。在不脱离本发明的原理和精神的情况下,可对这些实施例进行改变,其中,本发明的范围在权利要求及其等同物中限定。
权利要求
1.一种基于3D头发模板进行3D头发建模的设备,所述设备包括 3D头发模板库,用于预先存储一个或多个3D头发模板;以及3D头发模型产生单元,用于接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对由3D头发模板库提供的一个或多个3D头发模板进行操作,从而产生真实3D头发模型。
2.如权利要求1所述的设备,其中,所述3D头发模型产生单元包括头发分类单元,用于接收正视头发图像,基于所述正视头发图像的特点得出所述正视头发图像的发型类别,并在由3D头发模板库提供的多个3D头发模板中找出与所述发型类别相应的3D头发模板;以及头发校准单元,用于结合3D头部模型对头发分类单元找出的3D头发模型进行校准,从而产生真实3D头发模型。
3.如权利要求2所述的设备,其中,所述头发分类单元包括 头发形状检测器,用于检测正视头发图像的头发形状;边界细化器,用于对由头发形状检测器检测的头发形状进行边界细化; 形状特征提取器,用于从由边界细化器细化的头发边界提取形状特征; 分类定义器,用于将3D头发模板库提供的多个3D头发模板划分为多个发型类别; 分类器,用于基于由形状特征提取器提取的形状特征来确定所述正视头发图像的发型类别,并在分类定义器划分出的多个发型类别的3D头发模板中找出与所述正视头发图像的发型类别相应的3D头发模板。
4.如权利要求3所述的设备,其中,头发校准单元计算3D头发模板所基于的参考头部模型与3D头发模板之间的偏差,然后计算用于使得参考头部模型变为3D头部模型的变换参数,将计算出的参考头部模型与3D头发模板之间的偏差变换为针对3D头部模型的偏差, 并将变换后的偏差应用于3D头部模型。
5.如权利要求3所述的设备,其中,头发形状检测器通过面部检测、皮肤颜色建模、头发颜色建模、标准图像处理来输出头发形状的轮廓。
6.如权利要求3所述的设备,其中,所述形状特征提取器提取的形状特征包括头发的量、头发的对称性、头发分线位置和头发的长度。
7.如权利要求1所述的设备,其中,3D头发模板库预先存储应用于所有相关正视头发图像的公共3D头发模板,并且所述3D头发模型产生单元包括头发变形单元,用于接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对由3D头发模板库提供的公共3D头发模板进行变形处理,从而产生真实3D头发模型。
8.如权利要求7所述的设备,其中,头发变形单元包括知识数据定义器,用于定义公共3D头发模板的关键点以及依据关键点划分的区域; 头发形状检测器,用于检测正视头发图像的头发形状;头发划分器,用于将由头发形状检测器检测到的头发形状划分为普通部分和个性部分,其中,普通部分指示头发在不同个体之间比较类似的部分,个性部分指示头发在不同个体之间差异较大的部分;发片近似器,用于对由头发划分器划分出的个性部分进行近似处理;发片建模器,用于对发片近似器处理后的个性部分的发片进行3D建模;关键点的2D匹配器,用于结合3D头部模型,将知识数据定义器所定义的公共3D头发模型的边界关键点与由头发划分器划分出的普通部分的边界进行匹配;关键点的3D确定器,用于基于关键点的2D匹配器所匹配的结果并结合3D头部模型和知识数据定义器定义的区域来确定关键点的3D坐标;3D数据内插器,用于基于由关键点的3D确定器确定的关键点的3D坐标,结合知识数据定义器定义的区域来进行3D数据内插;模型合成器,用于将发片建模器输出的各个3D发片与3D数据内插器输出的内插结果相合成;以及纹理产生器,用于针对模型合成器合成的结果产生相应的纹理,从而产生真实3D头发模型。
9.如权利要求8所述的设备,其中,所述关键点包括与头发的外边界和内边界对应的关键点、3D头发模板的正视图中最向前突出的最前方关键点、作为3D头发模板后脑上的头发中的固定区域的边界点的固定线关键点。
10.如权利要求9所述的设备,其中,所述依据关键点划分的区域包括正视顶端区域, 位于内边界上的关键点与最前方关键点之间;正视前向区域,位于最前方关键点与外边界上的关键点之间;过渡区域,位于外边界上的关键点与固定线关键点之间;固定区域,为3D 头发模板中除了正视顶端区域、正视前向区域和过渡区域之外的剩余部分。
11.如权利要求8所述的设备,其中,3D数据内插器针对不同的区域采取不同的内插方法。
12.如权利要求3所述的设备,还包括,头发变形单元,用于接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对产生的真实3D头发模型进行变形处理,从而输出变形处理后的真实 3D头发模型。
13.—种动画产生装置,包括动画数据输入单元、动画数据分析单元和动画结果生成单元,其特征在于还包括如权利要求1到12中的任何之一所述的基于3D头发模板进行3D 头发建模的设备。
14.一种虚拟形象生成装置,包括虚拟形象数据输入单元、虚拟形象数据分析单元和虚拟形象结果生成单元,其特征在于还包括如权利要求1到12的任何之一所述的基于3D头发模板进行3D头发建模的设备。
15.一种照片合成装置,包括照片数据输入单元、照片数据分析单元和照片结果生成单元,其特征在于还包括如权利要求1到12中的任何之一所述的基于3D头发模板进行3D 头发建模的设备。
16.一种场景生成装置,包括场景数据输入单元、场景数据分析单元和场景结果生成单元,其特征在于还包括如权利要求1到12中的任何之一所述的基于3D头发模板进行3D 头发建模的设备。
17.一种基于3D头发模板进行3D头发建模的方法,所述方法包括预先存储一个或多个3D头发模板;以及接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对一个或多个3D头发模板进行操作,从而产生真实3D头发模型。
18.如权利要求17所述的方法,其中,接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对一个或多个3D头发模板进行操作,从而产生真实3D 头发模型的步骤包括接收正视头发图像,基于所述正视头发图像的特点得出所述正视头发图像的发型类另IJ,并在多个3D头发模板中找出与所述发型类别相应的3D头发模板;以及结合3D头部模型对找出的3D头发模型进行校准,从而产生真实3D头发模型。
19.如权利要求18所述的方法,其中,得出所述正视头发图像的发型类别的步骤包括 检测正视头发图像的头发形状;对检测的头发形状进行边界细化; 从细化的头发边界提取形状特征; 将提供的多个3D头发模板划分为多个发型类别;基于提取的形状特征来确定所述正视头发图像的发型类别,并在划分出的多个发型类别的3D头发模板中找出与所述正视头发图像的发型类别相应的3D头发模板。
20.如权利要求19所述的方法,其中,校准的步骤包括计算3D头发模板所基于的参考头部模型与3D头发模板之间的偏差,然后计算用于使得参考头部模型变为3D头部模型的变换参数,将计算出的参考头部模型与3D头发模板之间的偏差变换为针对3D头部模型的偏差,并将变换后的偏差应用于3D头部模型。
21.如权利要求19所述的方法,其中,通过面部检测、皮肤颜色建模、头发颜色建模、标准图像处理来输出头发形状的轮廓。
22.如权利要求17所述的方法,其中,预先存储的是应用于所有相关正视头发图像的公共3D头发模板,并且接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对一个或多个3D头发模板进行操作,从而产生真实3D头发模型的步骤包括接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对公共3D头发模板进行变形处理,从而产生真实3D头发模型。
23.如权利要求22所述的方法,其中,变形处理包括定义公共3D头发模板的关键点以及依据关键点划分的区域; 检测正视头发图像的头发形状;将检测到的头发形状划分为普通部分和个性部分,其中,普通部分指示头发在不同个体之间比较类似的部分,个性部分指示头发在不同个体之间差异较大的部分; 对划分出的个性部分进行近似处理; 对近似处理后的个性部分的发片进行3D建模;结合3D头部模型,将所定义的公共3D头发模型的边界关键点与划分出的普通部分的边界进行匹配;基于所匹配的结果并结合3D头部模型和定义的区域来确定关键点的3D坐标; 基于确定的关键点的3D坐标,结合定义的区域来进行3D数据内插; 将建模后的各个3D发片与内插结果相合成;以及针对合成的结果产生相应的纹理,从而产生真实3D头发模型。
全文摘要
提供一种基于3D头发模板进行3D头发建模的设备和方法。所述设备包括3D头发模板库,用于预先存储一个或多个3D头发模板;以及3D头发模型产生单元,用于接收正视头发图像和3D头部模型,基于所述正视头发图像的特点并结合3D头部模型对由3D头发模板库提供的一个或多个3D头发模板进行操作,从而产生真实3D头发模型。
文档编号G06T17/00GK102419868SQ20101050133
公开日2012年4月18日 申请日期2010年9月28日 优先权日2010年9月28日
发明者万涛, 孙讯, 张辉, 林和燮 申请人:三星电子株式会社, 北京三星通信技术研究有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1