一种三维头部建模方法及装置与流程

文档序号:13138649阅读:327来源:国知局
一种三维头部建模方法及装置与流程
本发明涉及计算机领域,尤其涉及一种三维头部建模方法及装置。
背景技术
:随着电子科技以及移动互联网技术的发展,移动电子设备(特别是智能手机)的功能越来越强大,可以帮助人们方便快捷的完成各种事务或为人们提供各种服务,人们的生活越来越离不开移动电子设备。当前,人们正在研究如何更好地在移动电子设备上创建与所拍摄人物相适应的真实感三维人物头部模型。现有技术中,在移动电子设备上,例如安卓android操作系统的移动电子设备上,实现的三维环境主要是游戏和建筑相关的应用,例如三维游戏场景,建筑三维视图等;对于三维模型的建立主要有以下方法:a、从专业软件中导出三维模型,b、通过三维扫描仪获取三维数据并进行模型重建。然而,基于专业软件导出的三维模型,数据量大,数据处理过程复杂,因此在调整模型时工作量很大;基于三维扫描仪所创建的三维模型,虽然模型精度很高,但是仍然存在数据量大的问题,同时,成本也很高。因此,现有技术中的三维模型建立方法都不适合在移动电子设备上来实现真实感三维人物头部模型。技术实现要素:本发明实施例所要解决的技术问题在于,提供一种三维头部建模方法及网三维头部建模装置,可以解决现有技术中三维模型建立处理数据量大、成本高的问题,节省模型建立的时间和成本。为了解决上述技术问题,本发明实施例第一方面公开了一种三维头部建模方法,包括:通过opengles绘制一个初始三维头部模型;根据预设的面部特征点和非特征点,通过配置好的candide3模型建立所述 初始三维头部模型中的面部模型;根据建立的所述面部模型提供的轮廓信息,通过二次贝塞尔曲面建立后脑模型;将所述面部模型和所述后脑模型组合成第一三维头部模型;根据从获取的图像中提取的人脸面部特征点调整所述第一三维头部模型,得到第二三维头部模型;对所述第二三维头部模型进行纹理映射,得到目标三维头部模型。结合第一方面,在第一种可能的实现方式中,所述配置好的candide3模型包括牙齿部分,所述牙齿部分包括上牙部分和下牙部分,均由四角面片组成。结合第一方面,在第二种可能的实现方式中,所述根据从获取的图像中提取的人脸面部特征点调整所述第一三维头部模型之前,还包括:根据动态图像专家组mpeg-4对人脸正面特征点的定义,以及所述candide3模型中人脸顶点的分布情况,设定需要提取的人脸面部特征点;根据设定的需要提取的人脸面部特征点,从获取的图像中提取出人脸面部特征点。结合第一方面,在第三种可能的实现方式中,提取的所述人脸面部特征点包括69个特征点,所述69个特征点包括9个轮廓特征点、16个眉毛特征点、16个眼睛特征点、10个鼻子特征点以及18个嘴巴特征点。结合第一方面,在第四种可能的实现方式中,所述根据从获取的图像中提取的人脸面部特征点调整所述第一三维头部模型,包括:根据人脸器官差值比例算法对所述第一三维头部模型的面部特征点进行调整;其中所述人脸器官差值比例算法包含获取的图像中人物头像的角度偏移参数,用于调整所述人物头像的偏移角度。结合第一方面,或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,或者第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述对所述第二三维头部模型进行纹理映射,包括:分别对所述第二三维头部模型的面部和后脑进行纹理映射;其中,对面部的纹理映射只映射眉毛以下的纹理信息,纹理映射的皮肤纹理为根据获取的所述图像中人脸面部的符合预设条件的皮肤图像块来生成。结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,对所述第二三维头部模型的面部进行纹理映射包括:采用基于鼻尖特征点约束算法对所述第二三维头部模型的面部模型进行纹理映射。结合第一方面的第五种可能的实现方式,在第七种可能的实现方式中,所述符合预设条件的皮肤图像块的各部分的色差小于第一预设阈值,所述皮肤图像块与面部边缘的色差小于第二预设阈值;所述纹理映射的皮肤纹理具体为通过图像拼接imagequilting算法将多个所述符合预设条件的皮肤图像块进行合成而得到的目标皮肤图像块。本发明实施例第二方面公开了一种三维头部建模装置,包括:模型绘制模块,用于通过opengles绘制一个初始三维头部模型;面部模型建立模块,用于根据预设的面部特征点和非特征点,通过配置好的candide3模型建立所述初始三维头部模型中的面部模型;后脑模型建立模块,用于根据建立的所述面部模型提供的轮廓信息,通过二次贝塞尔曲面建立后脑模型;模型合成模块,用于将所述面部模型和所述后脑模型组合成第一三维头部模型;模型调整模块,用于根据从获取的图像中提取的人脸面部特征点调整所述第一三维头部模型,得到第二三维头部模型;纹理映射模块,用于对所述第二三维头部模型进行纹理映射,得到目标三维头部模型。结合第二方面,在第一种可能的实现方式中,所述配置好的candide3模型包括牙齿部分,所述牙齿部分包括上牙部分和下牙部分,均由四角面片组成。结合第二方面,在第二种可能的实现方式中,还包括:设定模块,用于在所述模型调整模块根据从获取的图像中提取的人脸面部特征点调整所述第一三维头部模型之前,根据动态图像专家组mpeg-4对人脸正面特征点的定义,以及所述candide3模型中人脸顶点的分布情况,设定需要提取的人脸面部特征点;提取模块,用于根据设定的需要提取的人脸面部特征点,从获取的图像中提取出人脸面部特征点。结合第二方面,在第三种可能的实现方式中,提取的所述人脸面部特征点包括69个特征点,所述69个特征点包括9个轮廓特征点、16个眉毛特征点、16个眼睛特征点、10个鼻子特征点以及18个嘴巴特征点。结合第二方面,在第四种可能的实现方式中,所述模型调整模块包括:面部调整单元,用于根据人脸器官差值比例算法对所述第一三维头部模型的面部特征点进行调整;其中所述人脸器官差值比例算法包含获取的图像中人物头像的角度偏移参数,用于调整所述人物头像的偏移角度。结合第二方面,或者第二方面的第一种可能的实现方式,或者第二方面的第二种可能的实现方式,或者第二方面的第三种可能的实现方式,或者第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述纹理映射模块具体用于,分别对所述第二三维头部模型的面部和后脑进行纹理映射;其中,对面部的纹理映射只映射眉毛以下的纹理信息,纹理映射的皮肤纹理为根据获取的所述图像中人脸面部的符合预设条件的皮肤图像块来生成。结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述纹理映射模块采用基于鼻尖特征点约束算法对所述第二三维头部模型的面部模型进行纹理映射。结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述符合预设条件的皮肤图像块的各部分的色差小于第一预设阈值,所述皮肤图像块与面部边缘的色差小于第二预设阈值;所述纹理映射的皮肤纹理具体为通过图像拼接imagequilting算法将多个所述符合预设条件的皮肤图像块进行合成而得到的目标皮肤图像块。本发明实施例第三方面公开了一种计算机存储介质,所述计算机存储介质存储有程序,所述程序执行时包括本发明实施例第一方面、或者第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,或者第一方面的第三种可能的实现方式,或者第一方面的第四种可能的实现方式,或者第一方面的第五种可能的实现方式,或者第一方面的第六种可能的实现方式,或者第一方面的第七种可能的实现方式中的三维头部建模方法的全部步骤。实施本发明实施例,通过opengles绘制一个初始三维头部模型;根据预设的面部特征点和非特征点,通过配置好的candide3模型建立该初始三维头部模型中的面部模型;根据建立的该面部模型提供的轮廓信息,通过二次贝塞尔 曲面建立后脑模型,将面部模型和后脑模型组合成第一三维头部模型,根据从获取的图像中提取的人脸面部特征点调整第一三维头部模型,得到第二三维头部模型;最后对该第二三维头部模型进行纹理映射,得到目标三维头部模型,从而实现了在移动电子设备上建立真实感的三维人物头部模型,解决了现有技术中三维头部模型建立处理数据量大、成本高的问题,节省模型建立的时间和成本,而且可以更加准确地将特征点与模型顶点对应起来;另外,提取的人脸面部特征包括69个不同特征部位组成的特征点,减少了特征点个数,使得定位时间大大减少,提高建模效率;并且在面部特征点进行调整时,人脸器官差值比例算法包含用于调整所述人物头像的偏移角度的参数,进一步提高建模的精度。而且,对面部的纹理进行映射时只映射眉毛以下的纹理信息,纹理映射的皮肤纹理为根据获取的所述图像中人脸面部的符合预设条件的皮肤图像块来生成,可以在保证纹理映射的效果的前提下提高映射效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的三维头部建模方法的流程示意图;图2是本发明实施例提供的candide3模型的示意图;图3是本发明实施例提供的两个贝塞尔曲面片拼接的原理示意图;图4是本发明实施例提供的模型纹理贴图的流程原理示意图;图5是本发明实施例提供的不同坐标系的示意图;图6是本发明实施例提供的面部投影示意图;图7是本发明提供的面部投影的另一实施例的示意图;图8是本发明实施例提供的面部非特征点调整示意图;图9是本发明提供的三维头部建模装置的结构示意图;图10是本发明提供的三维头部建模装置的另一实施例的结构示意图;图11是本发明提供的三维头部建模装置的另一实施例的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1示出的本发明实施例提供的三维头部建模方法的流程示意图,该方法包括:步骤s100:通过opengles绘制一个初始三维头部模型;具体地,本发明实施例中的opengles(openglforembeddedsystems)是opengl三维图形api的子集;其中opengl(全写opengraphicslibrary)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图像(二维的亦可)。opengl是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。本发明实施例的移动电子设备通过opengles来绘制一个自定义的三维头部模型,先绘制一个初始三维头部模型,并可以通过预设算法将其简化,因此结合了移动电子设备(例如android移动设备)相对于个人计算机pc的硬件处理能力不强的特点,相对于现有技术中基于软件导出三维模型或基于三维扫描仪所创建的三维模型,不仅可以节省模型建立的时间和成本,也可以准确地将特征点和模型顶点对应起来。步骤s102:根据预设的面部特征点和非特征点,通过配置好的candide3模型建立所述初始三维头部模型中的面部模型;具体地,本发明实施例中的第一三维头部模型为具有人物头部一般特征的中性模型,即无表情、无姿势的模型,是建立跟移动电子设备拍摄下来的人物正面照片相适应的人物头部三维模型的基础,也可以称为标准头部三维模型。该第一三维头部模型可以由人物的面部模型和人物的后脑模型两个部分组成。步骤s104即为生成人物的面部模型的步骤,本发明实施例通过candide3模型作为面部三维模型的标准模型,因为candide3模型可以体现人类面部的相同结构,具有人类面部的共同特征,符合人类面部各个部分位置分布的规律,是一个典型的无明显特征的人脸,符合对标准模型的定义。根据预先设置的面部特征点和非特征点,采用预先配置好的candide3模型即可生成面部模型,并以该生成的面部模型建立初始三维头部模型中的面部模型。进一步地,如图2示出的本发明实施例提供的candide3模型的示意图,candide3模型中的顶点按照拓扑顺序连接形成若干三角面片组成的模型。面部模型上的顶点就是面部的特征点和非特征点。在结构上,candide3模型简单且易于控制,但是在应用扩展上,由于candide3模型只是呈现了面部的基本表面特征,在三维应用上受到了一定的限制。为了扩展模型的应用,本发明实施例预先配置好的candide3模型基于标准candide3模型做了一定的改进,增添牙齿部分,该牙齿部分包括上牙部分和下牙部分,均由四角面片组成,具体地,一共可以构建十六颗牙齿,左端上排第一颗牙齿左上角顶点为0号,按照顺时针规则顺序编号。牙齿初始情况下是咬合状态,因此上下排牙齿有部分重合。步骤s104:根据建立的所述面部模型提供的轮廓信息,通过二次贝塞尔曲面建立后脑模型;具体地,在步骤s102创建的面部模型基础上可以创建一个后脑模型,以此创建一个贴合的第一三维头部模型。后脑曲面具有平和的弯曲程度,简单的二次贝塞尔曲面就可以模拟后脑曲面。本发明实施例可以由面部三维模型的轮廓点作为决定贝塞尔曲面形状的控制点,在曲面的构建中,仅由一个贝塞尔曲面构成的后脑模型并不能和面部模型完全贴合,为了让头部模型更加完整和形象,后脑模型可以通过多个二次贝塞尔曲面的无缝拼接来实现。以面部轮廓特征点为基础,可由六个二次贝塞尔曲面来构成后脑三维模型。以两个贝塞尔曲面片的无缝拼接来举例说明后脑曲面模型的创建过程,拼接原理如图3所示:曲面p(u,v)和曲面q(u,v)是待拼接的两个曲面,分别用控制点pij和qij定义,数学描述如公式1。其中,u,v为贝塞尔曲面参数,bi(u)是参数u代表的二次贝塞尔曲线,bj(v)是参数v代表的二次贝塞尔曲线,两个相交曲线构成一个曲面,pij是一个3*3的矩阵,矩阵元素是控制贝塞尔曲面形状顶点的三维坐标。如图3所示,如果要两个曲面片在各曲面的端点处连续,则要求他们有公 共边界,即:p(1,v)=q(o,v)因此,要使两个贝塞尔曲面能够无缝拼接,就要两个曲面在它们的边界端点处连续,也就是:p1i=q0i,i=0,1,2在贝塞尔曲面中,构成贝塞尔曲面的贝塞尔曲线极值点是控制点的x坐标;贝塞尔曲线的高度由控制点y坐标决定,在本发明实施例中,构成贝塞尔曲面的每个贝塞尔曲线端点的y坐标值不得小于它们控制点的y坐标值,否则,最终创建的后脑三维模型会高于预期头部三维模型的顶端,所建模型的效果失真。贝塞尔曲线的z坐标控制其弯曲程度。为保证后脑模型与面部模型之间的无缝连接并且两者可以同步调整,本发明实施例基于面部三维模型的轮廓特征点来获取构成后脑模型的六个贝塞尔曲面顶点的坐标。步骤s106:将所述面部模型和所述后脑模型组合成第一三维头部模型;步骤s108:根据从获取的图像中提取的人脸面部特征点调整所述第一三维头部模型,得到第二三维头部模型;具体地,步骤s108之前,还包括获取的图像提取人脸面部特征点。本发明实施例获取的图像可以为移动电子设备通过摄像头拍摄到的图像,也就是说本发明实施例通过移动电子设备可以对即时拍摄的人物图像建立针对该人物带真实感的三维头部模型。本发明实施例的提取图像中的人脸面部特征点可以通过预先配置好的用于提取人脸面部特征点的软件开发工具包(softwaredevelopmentkit,sdk),对获取到的输入图像的人脸面部特征点进行自动定位,获取该人脸面部特征点的二维坐标。再具体地,在获取的图像提取人脸面部特征点之前可以预先导入配置好的用于人脸面部特征点提取相关的sdk的jar包,通过继承其接口即可实现人脸面部特征点的提取,通过该提取方式不但定位特征点速度更快,且位置更加准确。进一步地,本发明实施例提取的该人脸面部特征点可以包括69个特征点,具体地,可以结合动态图像专家组(movingpictureexpertsgroup,mpeg)-4,即mpeg-4对人脸正面特征点的定义和candide-3模型中人脸顶点的分布情况, 设定需要提取的人脸面部特征点,也就是说预先定义本发明实施例中的人脸面部特征点,本发明实施例中的人脸面部特征点可以包括69个,具体地,可以如下表所示:位置数目轮廓9眉毛8*2眼睛8*2鼻子10嘴巴18总计69也就是说,该69个面部特征点具体可以包括9个轮廓特征点、16个眉毛特征点、16个眼睛特征点、10个鼻子特征点以及18个嘴巴特征点。通过定义该69个不同特征部位的特征点,减少了特征点个数,使得定位时间大大减少,提高建模效率。具体地,步骤s108具体可以是通过对第一三维头部模型的顶点的调整来实现第二三维头部模型,需要根据人脸面部特征点,针对该第一三维头部模型中顶点的特性来进一步细化顶点的调整,主要包括三个部分的调整算法:a、针对面部特征点:根据人脸器官差值比例算法对该第一三维头部模型的面部特征点进行调整;b、针对面部非特征点:对眼睛非特征点使用微调算法,眼睛以外的非特征点使用局部仿射变换算法;c、针对后脑控制点:主要是对构成后脑模型的各个贝塞尔曲面的控制点进行调整,控制点的数据信息可通过基于面部轮廓特征点的坐标获取。步骤s110:对所述第二三维头部模型进行纹理映射,得到目标三维头部模型。具体地,对变换调整后得到的第二三维头部模型进行纹理映射,可以让模型更有真实感。如图4示出的本发明实施例提供的模型纹理贴图的流程原理示意图,要得到有真实感的目标三维头部模型,首先需要进行三维几何数据和彩色图像数据的获取;其次是纹理贴图,包含了三维数据与二维数据的匹配工作及纹理构建工作两部分。需要说明的是,本发明实施例不限于获取的图像提取人脸面部特征点的步骤与步骤s100-s106的执行先后顺序,可以先执行获取的图像提取人脸面部特征点的步骤,后执行步骤s100-s106的步骤,也可以同时执行获取的图像提取人脸面部特征点的步骤与步骤s100-s106,也可以先执行步骤s100-s106,后执行获取的图像提取人脸面部特征点的步骤。优选地,同时执行获取的图像提取人脸面部特征点的步骤与步骤s100-s106,可以进一步提高建模效率。实施本发明实施例,对获取的图像提取人脸面部特征点;通过opengles绘制一个初始三维头部模型;根据预设的面部特征点和非特征点,通过配置好的candide3模型建立该初始三维头部模型中的面部模型;根据建立的该面部模型提供的轮廓信息,通过二次贝塞尔曲面建立后脑模型,将面部模型和后脑模型组合成第一三维头部模型,根据该人脸面部特征点调整第一三维头部模型,得到第二三维头部模型;最后对该第二三维头部模型进行纹理映射,得到目标三维头部模型,从而实现了在移动电子设备上建立真实感的三维人物头部模型,解决了现有技术中三维头部模型建立处理数据量大、成本高的问题,节省模型建立的时间和成本;另外,提取的人脸面部特征包括69个不同特征部位组成的特征点,减少了特征点个数,使得定位时间大大减少,提高建模效率。进一步地,以移动电子设备为android操作系统的电子设备为例,步骤s100中通过opengles绘制一个初始三维头部模型时,如图5示出的本发明实施例提供的不同坐标系的示意图,android设备坐标系的原点是设备屏幕的左上角,opengles绘制图像的坐标系原点位于视图中心,android设备和opengles绘制图像所使用的坐标系不同。因此,在执行统一坐标系时,是将android设备的坐标系统向opengles的坐标系统转换,本发明实施例的坐标系转换的步骤包括:设人物图像鼻尖顶点为opengl绘图坐标系的中心点(ox,oy),人物图像中顶点坐标(x,y)的在opengl坐标系中的取值为(x’,y’),则对应关系如公式2所示:再进一步地,本发明实施例步骤s108中通过第一三维头部模型的顶点的调整来实现第二三维头部模型时,可以采用如下仿射变换算法进行调整:设在第一三维头部模型中的任意顶点p(x,y,z),则其在第二三维头部模型中对应顶点p'(x',y',z')可表示为:p'(x',y',z')=αp(x,y,z)+β公式(3)其中,β=(βx,βy,βz),α为仿射缩放矩阵,β为仿射平移向量。具体地,在根据人脸器官差值比例算法对该第一三维头部模型的面部特征点进行调整时,可以参考图6示出的本发明实施例提供的面部投影示意图,以鼻尖点作为坐标原点,w是输入正面图像中眉心到眼睛外角点的距离,w′是标准网格模型中眉心到眼睛外角点的距离,h是输入正面图像中眉心到下嘴唇中点的距离,h′是标准网格模型中眉心到下嘴唇中点的距离。对于面部特征点的调整,本发明实施例提供的人脸器官差值比例算法原理可以如下:设在标准模型中,左外眼角特征点pe'(x'eye,y'eye,z'eye),鼻尖点po'(x'o,y'o,z'o),下嘴唇中点pm'(x'mouth,y'mouth,z'mouth),对应在输入图像中,分别为pe(xeye,yeye),po(xo,yo),pm(xmouth,ymouth),根据x,y方向的伸缩比例εx,εy实现标准模型向调整网格模型的转化,其中εx为w′与w比例,εy为h与h的比例,εx,εy的数学表达式如公式4所示。代入各点坐标,可得公式5:进一步地,本发明实施例中的人脸器官差值比例算法包含获取的图像中人物头像的角度偏移参数,用于调整所述人物头像的偏移角度,已解决实际操作 中,获取的人物头像存在一定的角度的问题,如图7示出本发明提供的面部投影的另一实施例的示意图:坐标系统顺时针旋转θ角度(该θ即为本发明实施例的角度偏移参数),左外眼角距离眉心的距离即为左外眼角到旋转后坐标系y'轴的距离,眉心到下嘴唇中点的距离为左外眼角与下嘴唇到旋转后横坐标的差值,则具有一定角度的面部器官差值比例因子的数学表达式如公式6所示。其中,根据比例因子,可以计算出android设备中的人物图像某个特征点坐标(x,y)对应在调整模型中三维坐标(x',y',z')的x',y'的值,z'保持该特征点在标准模型中的z值不变,如公式7所示。特征点完成比例映射之后,需实现非特征点从图像到三维模型上的映射。可通过已知特征点在标准模型和自适应模型的坐标信息根据公式3计算缩放矩阵α和平移向量β计算而得到非特征点映射后的位置坐标。非特征点调整原理:设标准模型中的两个特征点p1(x1,y1,z1)和p2(x2,y2,z2),调整映射后对应在自适应模型坐标分别是p1'(x1',y1',z1')和p2'(x2',y2',z2'),根据公式3可得:继而:p2′-p1′=α(p2-p1)公式(9)进一步可得缩放矩阵参数:仅从单张二维图像中并不能获取顶点深度信息z的变化情况,因此本项目将z的伸缩比例视为0,即αz=0,结合公式10,带入公式6可以求得平移向量β的βx,βy分量,如公式11所示。由于特征点坐标是从二维图像上导出的,所以,可直接将深度方向的平移向量分量βz设为0。将公式10,11代入公式3,可得第二三维头部模型中任意顶点p'(x',y',z')的各分坐标用标准模型对应顶点p(x,y,z)表示如公式12所示。根据以上推导,在已知任意两个特征点信息之后就能求出第一三维头部模型到第二三维头部模型的调整缩放因子矩阵α和平移向量β,即可根据公式3求得第一三维头部模型上的任意顶点在第二三维头部模型中的调整坐标。但是,在实际操作中,因为人脸构成的复杂性以及不同人脸的特征分布有所不同,本发明实施例采用局部定位调整算法来计算非特征点的坐标位置。通过该算法所求取的α和β,更能突显出第二三维头部模型与输入人物相似的个性化。具体地,本发明实施例采用局部仿射变换算法来完成非特征点的调整,原理可以如下:取非特征点邻近的两个特征点(两个特征点不能与该特征点处于一个三角面片中),根据上述仿射变换原理,计算伸缩矩阵和平移向量。如图8示出的本发明实施例提供的面部非特征点调整示意图,27号点的仿射变换的缩放矩阵α和平移向量β可以通过29号和26号特征点计算获得,再由公式10计算得出27号点调整后的三维坐标。通过局部仿射变换算法所求取的缩放矩阵α和平移向量β,与计算整个模型的缩放矩阵α和平移向量β,减少了映射调整的误差,更能准确地显示出第二三维头部模型与输入人物的相似性。并且,由于构成眼睛模型的三角面片很小,即使很小的调整误差也会造成自适应模型构建不自然的结果。因此,本发明实施例可以采取微调算法完成眼睛各非特征点的映射。原理可以如下:眼睛的构成顶点都有明显的分布规律,围绕基于瞳孔的四个特征点进行微调,右上内眼睑的横坐标是瞳孔上方两个特征点横坐标和的一半,纵坐标与瞳孔上方特征点纵坐标相等。再进一步地,本发明实施例对该第二三维头部模型进行纹理映射,可以包括:分别对该第二三维头部模型的面部和后脑进行纹理映射;具体地,可以采用基于鼻尖特征点约束算法对该第二三维头部模型的面部模型进行纹理映射。可以通过以下原理来获取第二三维头部模型顶点三维坐标与人物图像面部特征点二维坐标的对应关系。算法原理如下:由公式11可得,纹理坐标范围为(0,1),因此纹理坐标需要规一化处理,可得:其中,tx、ty分别为人物图像中x、y纹理坐标分量,pix、piy分别为点 p在人物图像中的x、y坐标,pinx、piny为鼻尖特征点在人物图像中的x、y坐标,pmx、pmy分别为点p在人物自适应三维头部模型中的x、y坐标,pmnx、pmny为鼻尖特征点n在人物自适应三维头部模型中的x、y坐标,imgw、imgh分别为人物图像的宽度和高度,iw是人物图像中人脸的宽度,mw是在自适应模型中人脸的宽度。其中,对面部的纹理映射只映射眉毛以下的纹理信息,纹理映射的皮肤纹理为根据获取的该图像中人脸面部的符合预设条件的皮肤图像块来生成。具体地,眉毛往上部分因为常有头发等的遮挡,在进行纹理映射时,可以与后脑纹理处理相同,以移动电子设备中获取的面部图像中的小块皮肤图像作为皮肤纹理的模板,可以通过图像拼接imagequilting算法来消除纹理接缝将多个符合预设条件的皮肤图像块进行合成得到的目标皮肤图像块,将其作为纹理映射的皮肤纹理。在android坏境为例可以配合opengles中的光照效果,处理出来的皮肤纹理就不会出现明显的纹理接缝现象。imagequilting算法合成纹理的过程就是不断的确定新样本纹理块和已合成纹理之间的最佳拼接路径,本发明实施例提供的合成纹理的流程步骤可以包括:步骤1:截取人物图像的面部上一小块皮肤作为原始纹理,截取的该皮肤图像块必须符合预设条件,例如该皮肤图像块的各部分的色差小于第一预设阈值,以及该皮肤图像块与面部边缘的色差小于第二预设阈值,也就是说,要求所截取的皮肤纹理需具有尽量小的色差,还需要跟面部边缘的色差也要尽量小;步骤2:利用原始纹理图像产生纹理图像序列;步骤3:在序列中,随机抽取一块纹理t1,放到目标纹理中;步骤4:在每一个待合成的位置,从序列中再随机抽取一块纹理t2,将t2放在已合成纹理图像之后,且需要t2与t1具有一定约束的重叠;步骤5:计算t1与t2重叠区域的误差,寻找误差最小路径;步骤6:评估误差最小路径的累计误差,判断累计误差是否满足要求,如果满足,则该误差最小路径是纹理t2的边界,将t2追加到纹理图中,否则重复步骤4;步骤7:按照顺序重复执行步骤4~步骤6,直到输出最终的合成纹理。合成过程中,步骤1中裁剪的一小块纹理可以是输出的合成纹理图像的第一块,即第一行第一列的纹理块。对于其他行的第一列纹理块选取,需要计算 出该块上的边界水平方向上其重叠区域误差最小路径的累计误差值;对于第一行中其他列纹理块的选取,需要计算出待合成块左边垂直方向上的重叠区域误差最小路径的累计误差值;最后,对于其他行列纹理块的选取,需要同时计算出块上边界与左边界的误差最小路径的累计误差值。实施本发明实施例,通过opengles绘制一个初始三维头部模型;根据预设的面部特征点和非特征点,通过配置好的candide3模型建立该初始三维头部模型中的面部模型;根据建立的该面部模型提供的轮廓信息,通过二次贝塞尔曲面建立后脑模型,将面部模型和后脑模型组合成第一三维头部模型,根据从获取的图像中提取的人脸面部特征点调整第一三维头部模型,得到第二三维头部模型;最后对该第二三维头部模型进行纹理映射,得到目标三维头部模型,从而实现了在移动电子设备上建立真实感的三维人物头部模型,解决了现有技术中三维头部模型建立处理数据量大、成本高的问题,节省模型建立的时间和成本,而且可以更加准确地将特征点与模型顶点对应起来;另外,提取的人脸面部特征包括69个不同特征部位组成的特征点,减少了特征点个数,使得定位时间大大减少,提高建模效率;并且在面部特征点进行调整时,人脸器官差值比例算法包含用于调整所述人物头像的偏移角度的参数,进一步提高建模的精度。而且,对面部的纹理进行映射时只映射眉毛以下的纹理信息,纹理映射的皮肤纹理为根据获取的所述图像中人脸面部的符合预设条件的皮肤图像块来生成,可以在保证纹理映射的效果的前提下提高映射效率。为了便于更好地实施本发明实施例的上述方案,本发明还对应提供了一种三维头部建模装置,如图9示出的本发明提供的三维头部建模装置的结构示意图,三维头部建模装置90包括:模型绘制模块900、面部模型建立模块902、后脑模型建立模块904、模型合成模块906、模型调整模块908和纹理映射模块9010,其中,模型绘制模块900用于通过opengles绘制一个初始三维头部模型;面部模型建立模块902用于根据预设的面部特征点和非特征点,通过配置好的candide3模型建立该初始三维头部模型中的面部模型;后脑模型建立模块904用于根据建立的所述面部模型提供的轮廓信息,通过二次贝塞尔曲面建立后脑模型;模型合成模块906用于将该面部模型和该后脑模型组合成第一三维头部模型;模型调整模块908用于根据从获取的图像中提取的人脸面部特征点调整该第一三维头部模型,得到第二三维头部模型;纹理映射模块9010用于对该第二三维头部模型进行纹理映射,得到目标三维头部模型。具体地,本发明实施例中配置好的candide3模型包括牙齿部分,该牙齿部分包括上牙部分和下牙部分,均由四角面片组成。进一步地,如图10示出的本发明提供的三维头部建模装置的另一实施例的结构示意图,三维头部建模装置90包括模型绘制模块900、面部模型建立模块902、后脑模型建立模块904、模型合成模块906、模型调整模块908和纹理映射模块9010外,还可以设定模块9012和提取模块9014,其中,设定模块9012用于在模型调整模块908根据从获取的图像中提取的人脸面部特征点调整所述第一三维头部模型之前,根据动态图像专家组mpeg-4对人脸正面特征点的定义,以及所述candide3模型中人脸顶点的分布情况,设定需要提取的人脸面部特征点;提取模块9014用于根据设定的需要提取的人脸面部特征点,从获取的图像中提取出人脸面部特征点。进一步地,本发明实施例中提取的该人脸面部特征点包括69个特征点,该69个特征点包括9个轮廓特征点、16个眉毛特征点、16个眼睛特征点、10个鼻子特征点以及18个嘴巴特征点。再进一步地,模型调整模块908可以包括:面部调整单元,用于根据人脸器官差值比例算法对该第一三维头部模型的面部特征点进行调整;其中该人脸器官差值比例算法包含获取的图像中人物头像的角度偏移参数,用于调整该人物头像的偏移角度。再进一步地,纹理映射模块9010具体用于,分别对该第二三维头部模型的面部和后脑进行纹理映射;其中,对面部的纹理映射只映射眉毛以下的纹理信息,纹理映射的皮肤纹理为根据获取的该图像中人脸面部的符合预设条件的皮肤图像块来生成。其中,纹理映射模块9010可以采用基于鼻尖特征点约束算法对该第二三维 头部模型的面部模型进行纹理映射。本发明实施例中符合预设条件的皮肤图像块的各部分的色差小于第一预设阈值,该皮肤图像块与面部边缘的色差小于第二预设阈值;该纹理映射的皮肤纹理具体为通过图像拼接imagequilting算法将多个该符合预设条件的皮肤图像块进行合成而得到的目标皮肤图像块。请参阅图11,图11是本发明提供的三维头部建模装置的另一实施例的结构示意图。其中,如图11所示,三维头部建模装置110可以包括:至少一个处理器1101,例如cpu,至少一个网络接口1104,用户接口1103,存储器1105,至少一个通信总线1102、显示屏1106以及摄像模块1107。其中,通信总线1102用于实现这些组件之间的连接通信。其中,用户接口1103,可选用户接口1103还可以包括标准的有线接口、无线接口。网络接口1104可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1105可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1105可选的还可以是至少一个位于远离前述处理器1101的存储系统。如图11所示,作为一种计算机存储介质的存储器1105中可以包括操作系统、网络通信模块、用户接口模块以及三维头部建模程序。在图11所示的三维头部建模装置110中处理器1101可以用于调用存储器1105中存储的三维头部建模程序,并执行以下操作:通过opengles绘制一个初始三维头部模型;根据预设的面部特征点和非特征点,通过配置好的candide3模型建立所述初始三维头部模型中的面部模型;根据建立的所述面部模型提供的轮廓信息,通过二次贝塞尔曲面建立后脑模型;将所述面部模型和所述后脑模型组合成第一三维头部模型;根据从获取的图像中提取的人脸面部特征点调整所述第一三维头部模型,得到第二三维头部模型;需要说明的是,该提取人脸面部特征点可以对通过摄像模块1107获取的图像提取人脸面部特征点;对所述第二三维头部模型进行纹理映射,得到目标三维头部模型。具体地,该配置好的candide3模型包括牙齿部分,所述牙齿部分包括上牙 部分和下牙部分,均由四角面片组成。具体地,处理器1101根据从获取的图像中提取的人脸面部特征点调整所述第一三维头部模型之前,还可以执行:根据动态图像专家组mpeg-4对人脸正面特征点的定义,以及所述candide3模型中人脸顶点的分布情况,设定需要提取的人脸面部特征点;根据设定的需要提取的人脸面部特征点,从获取的图像中提取出人脸面部特征点。具体地,提取的所述人脸面部特征点包括69个特征点,所述69个特征点包括9个轮廓特征点、16个眉毛特征点、16个眼睛特征点、11个鼻子特征点以及18个嘴巴特征点。具体地,处理器1101根据所述人脸面部特征点调整所述第一三维头部模型,可以包括:根据人脸器官差值比例算法对所述第一三维头部模型的面部特征点进行调整;其中所述人脸器官差值比例算法包含获取的图像中人物头像的角度偏移参数,用于调整所述人物头像的偏移角度。具体地,处理器1101对所述第二三维头部模型进行纹理映射,可以包括:分别对所述第二三维头部模型的面部和后脑进行纹理映射;其中,对面部的纹理映射只映射眉毛以下的纹理信息,纹理映射的皮肤纹理为根据获取的所述图像中人脸面部的符合预设条件的皮肤图像块来生成。具体地,处理器1101对所述第二三维头部模型的面部进行纹理映射,可以包括:采用基于鼻尖特征点约束算法对所述第二三维头部模型的面部模型进行纹理映射。具体地,符合预设条件的皮肤图像块的各部分的色差小于第一预设阈值,所述皮肤图像块与面部边缘的色差小于第二预设阈值;所述纹理映射的皮肤纹理具体为通过图像拼接imagequilting算法将多个所述符合预设条件的皮肤图像块进行合成而得到的目标皮肤图像块。需要说明的是,本发明实施例中的三维头部建模装置90或三维头部建模装置110包括但不限于智能手机、智能手腕设备、智能手表、智能眼镜或个人数字助理(personaldigitalassistant,pda)、等其它具有摄像模块和显示屏的移动 电子设备。三维头部建模装置90或三维头部建模装置110中各功能模块的功能可根据上述方法实施例中的方法具体实现,这里不再赘述。综上所述,实施本发明实施例,通过opengles绘制一个初始三维头部模型;根据预设的面部特征点和非特征点,通过配置好的candide3模型建立该初始三维头部模型中的面部模型;根据建立的该面部模型提供的轮廓信息,通过二次贝塞尔曲面建立后脑模型,将面部模型和后脑模型组合成第一三维头部模型,根据从获取的图像中提取的人脸面部特征点调整第一三维头部模型,得到第二三维头部模型;最后对该第二三维头部模型进行纹理映射,得到目标三维头部模型,从而实现了在移动电子设备上建立真实感的三维人物头部模型,解决了现有技术中三维头部模型建立处理数据量大、成本高的问题,节省模型建立的时间和成本,而且可以更加准确地将特征点与模型顶点对应起来;另外,提取的人脸面部特征包括69个不同特征部位组成的特征点,减少了特征点个数,使得定位时间大大减少,提高建模效率;并且在面部特征点进行调整时,人脸器官差值比例算法包含用于调整所述人物头像的偏移角度的参数,进一步提高建模的精度。而且,对面部的纹理进行映射时只映射眉毛以下的纹理信息,纹理映射的皮肤纹理为根据获取的所述图像中人脸面部的符合预设条件的皮肤图像块来生成,可以在保证纹理映射的效果的前提下提高映射效率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1