专利名称:基于单张相片的快速人脸建模方法及系统的制作方法
技术领域:
本发明涉及人脸图像处理领域,尤其涉及人脸建模的方法及系统。
背景技术:
目前的基于静止图片的人脸建模的方法可以分为两类一类是传统的基于多张相片的形状重建方法,另外一类是基于正交图片的模型拟合的方法。
传统的基于多张相片的形状重建方法一般包含以下步骤相机标定、特征点匹配、三维点重建、构建三角网、纹理映射。传统的重建方法的理论基础比较成熟,但是实现起来比较困难。
相机标定的目的是计算相机的内方位元素(焦距、主点、畸变参数等)和外方位元素(相机的空间位置和姿态参数),标定一般是需要利用专门的辅助设备来完成。近年来提出的自标定方法虽然可以不需要任何辅助设备,但是需要大量的特征对应点。而特征点匹配(即寻找特征对应点)是一个非常困难的问题,至今还没有非常有效的方法。在标定和特征点匹配完成后,为了获得精确的重建结果,一般会采样光束法(Bundle Adjustment)来对所有的未知数进行整体优化。
另外一类重建方法避开了传统方法中的标定和特征点匹配。其思想是对人脸拍摄正面和侧面图像,由于正面图像和侧面图像正交,所以可以从图像中直接提取出人脸特征点的三维坐标。然后用提取出的三维坐标来对一个通用的三维人脸模型进行拟合,就可以得到一个外形和图像中人脸相似的模型。基于正交图像的方法原理非常简单,不过一般需要手工交互来确定人脸特征点的位置,而且需要用户拍摄出正交图像,这在实际中操作起来比较麻烦。
发明内容
本发明所要解决的技术问题在于提供一种基于单张相片的快速人脸建模方法及系统,以简单、迅速的建立人脸模型。
为解决上述技术问题,本发明提供一种基于单张相片的快速人脸建模方法,包括如下步骤(1)输入一张正面人脸相片和一个通用三维人脸模型;(2)针对正面人脸相片,定位出真实人脸器官轮廓位置,并确定其中的轮廓控制点;(3)针对通用三维人脸模型,标定出与所述轮廓控制点对应的模型控制点;(4)建立所述模型控制点与所述对应的轮廓控制点之间的联系;(5)根据所述模型控制点与轮廓控制点之间的联系,利用通用三维人脸模型进行模型拟合,根据轮廓控制点的位置来调整模型控制点,使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似;(6)对拟合后的模型添加纹理。
其中,所述步骤(2)中,定位出正面人脸图像中人脸器官轮廓位置的步骤,包括(21)针对正面人脸相片,基于ASM模型定位出正面人脸图像中人脸器官轮廓的初始位置;(22)结合相片中的人脸轮廓真实位置,对定位出的初始位置进行微调,得到人脸器官轮廓的准确位置。
其中,所述步骤(5)中,在模型拟合过程中,进一步通过插值的方法调整通用三维人脸模型中的非控制点,进一步使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似。
其中,所述非控制点的调整,包括在通用三维人脸模型中确定由各控制点组成的三角网,并在真实人脸器官轮廓中确定由对应控制点组成的三角网;
根据在通用三维人脸模型与真实人脸器官轮廓中的对应的三角形,建立每两个对应三角形之间的仿射关系;判断通用三维人脸模型中的非控制点落入哪个三角形区域内,利用所述仿射关系,根据真实人脸器官轮廓中的对应三角形确定该非控制点调整后的位置。
其中,所述步骤(6)中,对于控制点,直接将对应的人脸器官轮廓中的控制点的纹理坐标赋值给拟合后的模型中的控制点,来获得纹理。
其中,所述步骤(6)中,对于非控制点,根据真实人脸器官轮廓中对应的三角形顶点的纹理坐标,通过纹理插值计算出调整后的非控制点的纹理坐标。
为解决上述技术问题,本发明进而提供一种基于单张相片的快速人脸建模系统,包括真实轮廓定位装置,用于针对输入的单张正面人脸相片,定位出真实人脸器官轮廓位置,并确定其中的轮廓控制点;模型标定装置,用于针对输入的通用三维人脸模型,标定出与所述轮廓控制点对应的模型控制点,并建立所述模型控制点与对应的轮廓控制点之间的联系;模型拟合装置,用于根据所述模型控制点与轮廓控制点之间的联系,利用通用三维人脸模型进行模型拟合,根据轮廓控制点的位置来调整模型控制点,使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似;纹理添加装置,用于对拟合后的模型添加纹理。
其中,所述真实轮廓定位装置,针对正面人脸相片,基于ASM模型定位出正面人脸图像中人脸器官轮廓的初始位置,并结合相片中的人脸轮廓真实位置,对定位出的初始位置进行微调,得到人脸器官轮廓的准确位置。
其中,所述模型拟合装置,在模型拟合过程中,进一步对通用三维人脸模型中的非控制点进行插值调整,进一步使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似。
其中,所述纹理添加模块,通过计算模型点对应的纹理坐标来添加纹理。
本发明可以自动的从单张正面图像中提取出人脸器官的初始轮廓,用户只需要进行少量的交互就可以准确的定位出人脸器官轮廓,可以根据提取的轮廓来建立覆盖人脸区域的三角网格,通过建立人脸器官轮廓控制点和通用三维模型中对应点的联系,并根据三角网格来进行三维模型中非控制点的坐标内插,完成通用模型到真实人脸的拟合。通过建立三维模型点和正面图像中对应的像素点的联系,完成纹理映射,得到具有真实感的人脸模型。本发明可以快速的从正面人脸中建立人脸模型,操作简单,得到的人脸模型在一定的角度范围内具有很强的真实感。
图1为根据本发明实施例所述的建模流程图;图2为正面人脸器官轮廓定位结果示意图;图3为三维人脸编辑界面示意图;图4为基于三角形的模型拟合示意图;图5为根据本发明实施例完成的人脸建模结果示意图。
具体实施例方式
根据本发明实施例所述的基于单张相片的快速人脸建模系统,在结构上可以包括真实轮廓定位装置、模型标定装置、模型拟合装置、纹理添加装置。
其中,真实轮廓定位装置,用于针对输入的单张正面人脸相片,定位出真实人脸器官轮廓位置,并确定其中的轮廓控制点;模型标定装置,用于针对输入的通用三维人脸模型,标定出与所述轮廓控制点对应的模型控制点,并建立所述模型控制点与对应的轮廓控制点之间的联系;模型拟合装置,用于根据所述模型控制点与轮廓控制点之间的联系,利用通用三维人脸模型进行模型拟合,根据轮廓控制点的位置来调整模型控制点,使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似;纹理添加装置,用于对拟合后的模型添加纹理。
本发明所述系统中,所述轮廓定位装置可以基于ASM(Active ShapeModel)自动的从单张图片中提取出人脸器官的初始轮廓。ASM模型是对样本空间代表的人脸形状变化的一种表示,因此可以在人脸器官轮廓定位的时候用来控制不同姿态的人脸形状变化。基于ASM的人脸器官轮廓定位方法实际上已经成为人脸器官轮廓定位的标准方法。加入简单的人机交互后得到人脸器官的精确轮廓,其确定的轮廓控制点和模型标定装置在通用三维人脸模型上标定出的三维点之间有着对应关系,基于对应关系,该模型拟合装置可以根据轮廓自动的对通用三维模型进行拟合,使其和真实人脸模型相似。最后由纹理添加装置根据提取的轮廓点的图像坐标来对三维模型添加纹理就可以得到具有真实人脸外观的三维模型。为了方便显示,三维模型可以以PLY格式与对应的纹理图像存放在一起。
参考图1,为根据本发明实施例所述的建模流程图。一方面,本发明实施例首先输入一张正面人脸相片(步骤101)。针对正面人脸相片,可以先基于ASM模型来定位出正面人脸图像中人脸器官的轮廓(步骤102),但是受光照等因素的影响,定位的结果不会非常精确,因此还可以再通过人机交互对定位的轮廓进行微调(步骤103),得到人脸各个器官的准确轮廓。提取的轮廓是为模型拟合提供依据,定位后的结果可以参考图2所示。
步骤101中,正面人脸相片可以用数码相机拍摄得到,也可以从USB摄像头输入的视频数据中来抽取。由于我们的通用三维通用模型一般是没有表情的,所以输入的正面人脸相片也应该没有表情。最后的纹理帖图数据是从输入的正面人脸图像中来获取,所以图像的质量将会影响到最终真实人脸的显示效果,因此应尽量保证输入的正面人脸图像纹理清晰。
本领域熟知,在步骤102中提到的ASM模型可以通过训练获得,具体的训练方法有很多,例如在中国专利申请号为200610012233.9,名称为“基于AAM的头部姿态实时估算方法及系统”的发明专利申请中描述的那样,训练ASM模型需要对每一张人脸样本进行人脸的主要特征区域(眉毛、眼睛、鼻子、嘴巴和下巴)进行标注,在一个具体的实施例中可以标注了n个点来表示人脸的主要特征区域的轮廓。设一张人脸样本中的标定轮廓点的坐标为(xi,yi),i=0,1,...,n,n为点的数目,那么可以将所有点的平面坐标组织称为一个一维矢量Sj=[x0,y0,...,xn,yn],Sj就是训练的一个样本。将所有标定的人脸轮廓中的平面点都组织成一维矢量,然后对所有的样本进行PCA变换就可以得到ASM模型s=s0+Σi=1npisi]]>其中,s0是训练样本的均值,也就是平均轮廓脸,s就是ASM模型。
当然,其他的训练方法获得的ASM也是适用于本发明的。
步骤102中基于ASM的人脸器官轮廓定位是Face Alignment中一种非常有效的方法,具体实现方法如下第一步是利用人脸检测和眼睛、嘴巴定位技术定位出步骤1给出的正面人脸相片的眼睛、嘴巴的位置,具体眼睛、嘴巴定位技术目前也有很多,例如中国专利申请号200610011673.2,名称为“一种人脸特征点定位方法”中提供的定位方法;第二步在定位出眼睛、嘴巴的位置的基础上将ASM的平均轮廓脸覆贴于正面人脸相片上,将ASM的平均轮廓脸的人脸器官的轮廓作为正面人脸相片的初略轮廓;第三步是根据初略位置利用边缘匹配技术来进一步搜索器官的边缘点,并将搜索到的边缘点投影到ASM的特征向量si所张成的子空间,投影后的结果经过反算就可以得到新的轮廓。对第三步不断的迭代计算就能够得到一个和真实人脸轮廓相似同时又受ASM模型约束的初始轮廓,这些轮廓是由轮廓控制点组成。但是由于ASM是一个统计模型,因此只能反映一定范围内的人脸器官轮廓的形状变化,同时在人脸图像上的定位也会受光照等的影响,所以基于ASM的方法并不能非常精确的定位出人脸器官的轮廓。这个缺陷可以通过步骤103来弥补。
另一方面,本发明实施例还要输入一个通用三维人脸模型(步骤104),并对其标定控制点(步骤105)。通用三维人脸模型是一个平均三维模型,可以用来作为模型拟合的基础。为了进行模型拟合,还需要建立人脸器官轮廓和通用三维模型对应点的联系(步骤106)。为了方便建立对应点的联系,可以设计一个三维模型编辑系统,如图3所示,使用这个系统可以完成对模型中每个点的选择,并可以事先将轮廓中的每个点对应的三维模型点都选择出来,并存放在相应的文件当中。
步骤105中,通用三维模型一般是由三维造型软件(比如3DMax、Maya等)来制作。本发明中没有用到完整的三维人头模型,而是只用了人脸部分的三维数据。其数据的获取利用了OpenGL的深度缓存机制,具体方法是在OpenGL三维编程环境下将投影模式设置为正射投影,然后对正面的三维人头模型进行绘制并保存其深度信息为一幅深度图像。从深度图像中选取人脸器官轮廓附近的点,将其深度值作为三维数据的Z值,图像的行列号作为Y、X值就可以得到只包含人脸区域的三维数据。
步骤106中,为了方便建立对应点的联系,可以利用三维模型编辑系统,如图3所示,使用这个系统可以完成对模型中每个点的选择,并可以事先将轮廓中的每个点对应的三维模型点都选择出来,并存放在相应的文件当中。
在获得了人脸器官轮廓和通用三维模型中对应的点之后,就可以进行模型的拟合(步骤107)。拟合的原理就是调整通用模型中与轮廓点对应的点,使整个三维人脸模型的器官的分布和真实人脸中的器官位置相似。
步骤107中,除了和轮廓点对应的点,通用三维模型中还有大量的非控制点需要调整。这些点的新位置可以通过插值的方法来完成。如图4所示,A、B、C、P点是原始点(对应于在通用三维模型中标定的模型控制点)的位置,A′、B′、C′、P′点(从正面人脸中提取出的人脸器官轮廓控制点)是调整后的位置。p点是通用三维模型中的非控制点,它可以由三角形的三个顶点A,B,C来唯一表示。由于可以事先建立两个三角形之间的对应关系(仿射关系),所以p点调整后的位置p′就可以唯一确定下来。对通用模型中的每个非控制点,可以首先判断它落在哪个三角形范围之内,然后就可以利用上述的方法来确定调整后的位置。
最后需要为拟合后的模型添加纹理(步骤108),即计算每个模型点对应的纹理坐标。其方法和模型拟合类似,对模型中的控制点,直接将对应的轮廓点的纹理坐标赋给它即可。对非控制点,其调整后的位置p′可以得到,三角A′B′C′的三个顶点的纹理坐标是已知的,利用简单的纹理插值方法就可以计算出p′点的纹理坐标。
如图5所示,为利用本发明进行人脸建模后的结果,在一定的旋转范围内可以获得很好的效果。
权利要求
1.一种基于单张相片的快速人脸建模方法,其特征在于,包括如下步骤(1)输入一张正面人脸相片和一个通用三维人脸模型;(2)针对正面人脸相片,定位出真实人脸器官轮廓位置,并确定其中的轮廓控制点;(3)针对通用三维人脸模型,标定出与所述轮廓控制点对应的模型控制点;(4)建立所述模型控制点与所述对应的轮廓控制点之间的联系;(5)根据所述模型控制点与轮廓控制点之间的联系,利用通用三维人脸模型进行模型拟合,根据轮廓控制点的位置来调整模型控制点,使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似;(6)对拟合后的模型添加纹理。
2.如权利要求1所述的方法,其特征在于,所述步骤(2)中,定位出正面人脸图像中人脸器官轮廓位置的步骤,包括(21)针对正面人脸相片,基于ASM模型定位出正面人脸图像中人脸器官轮廓的初始位置;(22)结合相片中的人脸轮廓真实位置,对定位出的初始位置进行微调,得到人脸器官轮廓的准确位置。
3.如权利要求1所述的方法,其特征在于,所述步骤(5)中,在模型拟合过程中,进一步通过插值的方法调整通用三维人脸模型中的非控制点,进一步使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似。
4.如权利要求3所述的方法,其特征在于,所述非控制点的调整,包括在通用三维人脸模型中确定由各模型控制点组成的三角网,并在真实人脸器官轮廓中确定由对应的轮廓控制点组成的三角网;根据在通用三维人脸模型与真实人脸器官轮廓中的对应的三角形,建立每两个对应三角形之间的仿射关系;判断通用三维人脸模型中的非控制点落入哪个三角形区域内,利用所述仿射关系,根据真实人脸器官轮廓中的对应三角形确定该非控制点调整后的位置。
5.如权利要求1所述的方法,其特征在于,所述步骤(6)中,对于控制点,直接将对应的人脸器官轮廓中的控制点的纹理坐标赋值给拟合后的模型中的控制点,来获得纹理。
6.如权利要求5所述的方法,其特征在于,所述步骤(6)中,对于非控制点,根据真实人脸器官轮廓中对应的三角形顶点的纹理坐标,通过纹理插值计算出调整后的非控制点的纹理坐标。
7.一种基于单张相片的快速人脸建模系统,其特征在于,包括真实轮廓定位装置,用于针对输入的单张正面人脸相片,定位出真实人脸器官轮廓位置,并确定其中的轮廓控制点;模型标定装置,用于针对输入的通用三维人脸模型,标定出与所述轮廓控制点对应的模型控制点,并建立所述模型控制点与对应的轮廓控制点之间的联系;模型拟合装置,用于根据所述模型控制点与轮廓控制点之间的联系,利用通用三维人脸模型进行模型拟合,根据轮廓控制点的位置来调整模型控制点,使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似;纹理添加装置,用于对拟合后的模型添加纹理。
8.如权利要求7所述的系统,其特征在于,所述真实轮廓定位装置,针对正面人脸相片,基于ASM模型定位出正面人脸图像中人脸器官轮廓的初始位置,并结合相片中的人脸轮廓真实位置,对定位出的初始位置进行微调,得到人脸器官轮廓的准确位置。
9.如权利要求7所述的系统,其特征在于,所述模型拟合装置,在模型拟合过程中,进一步对通用三维人脸模型中的非控制点进行插值调整,进一步使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似。
10.如权利要求7所述的系统,其特征在于,所述纹理添加模块,通过计算模型点对应的纹理坐标来添加纹理。
全文摘要
本发明公开了一种基于单张相片的快速人脸建模方法及系统,首先输入一张正面人脸相片和一个通用三维人脸模型;然后针对正面人脸相片,定位出真实人脸器官轮廓位置,并确定其中的轮廓控制点;针对通用三维人脸模型,标定出与所述轮廓控制点对应的模型控制点;建立所述模型控制点与所述对应的轮廓控制点之间的联系;根据所述模型控制点与轮廓控制点之间的联系,利用通用三维人脸模型进行模型拟合,根据轮廓控制点的位置来调整模型控制点,使得整个三维人脸模型的器官分布和真实人脸中的器官位置相似;对拟合后的模型添加纹理。本发明可以快速的从正面人脸中建立人脸模型,操作简单,得到的人脸模型在一定的角度范围内具有很强的真实感。
文档编号G06T15/00GK1889129SQ20061008885
公开日2007年1月3日 申请日期2006年7月20日 优先权日2006年7月20日
发明者谢东海, 黄英, 邓亚峰, 王浩 申请人:北京中星微电子有限公司