技术领域
本发明涉及计算机图形学、数字图像处理及人工智能等领域,具体是一种通 过平面图像进行三维人脸建模的方法和系统。
背景技术
现有三维人脸建模技术可大致分为基于
硬件(
三维扫描仪,结构光等)和 基于图像建模两种方法。利用三维数字
扫描仪获取人脸三维信息能够得到精确 的人脸模型,但是由于硬件设备造价高、不灵活,一般只适用于某些特殊场合。 因此,根据图像或者视频中的信息进行人脸个性建模的方法具有巨大的市场前 景。
通过对近年技术文献检索,可以发现基于图像的人脸建模方法中比较具有 代表性的是根据多视点人脸图像或视频序列,通过
机器视觉算法来计算和恢复 人脸特征点的三维信息,并通过对中性人脸模型的
变形来合成特定三维人脸。 其中包括Pighin等人在美国计算机学会计算机图形专业组98年会论文集上提 出的空间散乱数据插值方法(Proceeding of ACM SIGGRAPH,1998:75-84)和 Liu等人在《The Journal of Visualization and Computer Animation》,Vol.12, No.4,2001:227-240(
可视化和计算机动画,第12卷,第4期,2001年:227-240 页)上提出的通过
角点匹配和Structure from Motion(运动重建结构)算法, 后者实现了基于单个摄像头的人脸重建;为了提高建模
精度,Fua等人提出用光 束法(Bundle Adjustment)与人脸库相结合的方法从
视频流中恢复人脸形状, 该方法可以适应在光照条件的变化。但总的来说,这类基于多张图片的建模方 法需要大量的
人机交互来完成图像间的特征点匹配,操作复杂,且不易实现自 动化。
为了简化人工操作并实现建模的自动化,近年又出现了一些基于单张图像 的人脸建模算法。一般而言,在没有任何假设约束的情况下,基于单张图像的 三维形状重建是一个病态问题。但是学者Blanz等人在《IEEE Transactions on Pattern Analysis and Machine Intelligence》Vol.25,No.9,2003:1063-1074 (IEEE
模式识别与机器智能,第25卷,第9期,2003年:1063-1074页)上提 出的
三维形变模型克服了这个问题,他们以三维人脸库作为先验知识对人脸模 型进行约束,成功地实现了基于单张图像的三维人脸
自动建模。但是该模型还 存在许多亟待改进的地方:
迭代次数多、运算时间长是其主要不足,此外,模型 匹配算法对初值依赖性强,往往会因为局部最优解而导致建模失败。在此
基础 上,Romdhani于2005年在论文《Face Image Analysis Using a Multiple Feature Fitting Strategy》(基于多重特征拟合方案的人脸
图像分析)中采用多重特征 对优化目标函数进行约束,在一定程度上缓解了形变模型的局部最优问题,但 同时也导致计算更加复杂。总的来说,求解大规模非线性函数优化问题所导致 的低性能是三维形变模型的根本困难,目前仍然没有得到有效的解决。
另外,近年来的一些相关的三维人脸建模
专利(包括中国专利
申请号 200610024720.7和200610088857.9)也提供了从单张照片进行三维人脸建模的 一些解决方案,但是这些系统均没有考虑如何从一张照片上获取相对准确的特 征点深度值,仅利用特征点的二维信息,从而影响了建模的准确度。
现有的各种人脸
三维建模技术主要集中于对变形算法的改进,通过大量实 验发现,在输入条件不变的情况下(仅给定照片上特定人脸的一组特征点),形 变算法本身的改进对形状重建精度的提高有限。如果将单张照片上的二维人脸 特征点直接用于形变算法进行三维形状重建,产生的人脸模型从其它视角上观 察缺乏个性特征。这是由于单张照片上的人脸特征点的深度信息未知,直接采 用二维特征点并不能有效地估计出其它
顶点在深度方向上的偏移量。如果已知 特征点的三维坐标,使用相同的形变算法,重建的精度可以得到大幅提高。但 是,在仅有一张照片作为输入的情况下,如果不借助其它工具获取特征点的深 度信息通常是不可能的。
发明内容
本发明所要解决的技术问题是设计一种能够获取准确的特征点深度值,基于 单张人脸照片,快速、真实感强的人脸重建方案,以满足实际应用中对人脸建 模的精度和速度两方面的需求。
本发明解决上述技术问题的技术方案是,给定一个三维人脸库作为
知识库, 设计一种基于两步形状建模的真实感人脸重建方法和系统,具体包括,输入一 张
正面人脸照片;预处理模
块对输入的特定人脸特征点进行标定,获得二维特 征点坐标,根据三维人脸库创建中性人脸模型,三维模型编辑器对三维人脸特 征点进行标定;人脸几何形状重建模块根据三维人脸库中的先验知识建立稀疏 统计模型估计二维特征点的深度值,估计二维特征点的深度值,并将已知的二 维坐标与深度估计值组合得到特征点的类三维(Quasi-3D,Q-3D)坐标;人脸 几何形状重建模块以类三维特征点作为控制点,用狄利克里自由变形算法对中 性人脸的所有顶点进行变形,生成特定人脸的
几何模型;
纹理合成及映射模型, 采用基于区域扩张的方法合成纹理,将其映射到几何模型,对非特征区域进行 扩张以增加人脸图像
覆盖的范围,将扩张后的图像进行垂直投影,对几何顶点 上未被纹理覆盖的区域采用插值或块填充方法进行修复,完成三维人脸的纹理 映射,生成三维人脸模型。
本发明不需要多幅输入照片,无需特征点的匹配等复杂过程,而且用于特定 人脸建模所需的特征点数目不多,因此具有实时快速、计算简单,建模准确度 高等优点。实现结果表明,在少量特征点的情况下,本发明能够生成真实感较 好的三维人脸模型;借助三维人脸模型,可以合成不同
姿态、不同光照条件下 具有真实感的人脸图像,具备较强的应用价值。
附图说明
图1本发明基于两步形状建模的
三维人脸重建系统的
框架图
图2两步人脸形状建模方案的
流程图图3基于单张照片的纹理合成过程
图4空白点p0相邻8个方向的示意图
图5是根据本发明方法完成的基于单张照片的人脸
三维重建结果示例
具体实施方式
本发明提出以人脸形状统计模型为工具,构建三维人脸重建系统,利用人脸 库中人脸模型上相应特征点的空间分布知识,对照片上特定人脸的特征点的深 度值进行估计。根据这一思想,本发明提出一个两步人脸形状建模(Two-step Facial Shape Modeling,TSFSM)方案——首先根据人脸特征点建立训练库的 稀疏统计模型,然后用
优化算法估计出测试人脸特征的深度值,并将已知的二 维坐标与深度估计值组合得到特征点的类三维(Quasi-3D,Q-3D)坐标(将其 称之为类三维坐标是因为真实三维坐标值是未知的);然后,将Q-3D特征点输 入形变算法对整个形状进行重建,创建特定人脸的三维形状;最后,对人脸几 何模型进行基于单张照片的纹理映射。实验结果表明,由于本发明合理地利用 了人脸结构知识,通过单张图片上的少量特征点仍然可以重建出真实感较好的 三维人脸模型。
下面针对附图和具体
实施例对本发明的实施进行具体描述。
如图1所示为本发明三维人脸重建系统的示意
框图。该系统包括:预处理模 块、人脸几何形状重建模块和纹理映射模块。
(1)预处理模块
预处理模块根据三维人脸库创建中性人脸模型、获取二维人脸照片和三维 中性人脸的主要特征点,中性人脸模型由多个三角片构成。在本发明中,中性 人脸f通过三维人脸库中的人脸fi进行合成:
其中,m是人脸库中三维人脸模型的数目,通常男女性各占一半,将中性人 脸划分为多个空间顶点,并用
三维网格的形式来组织空间点。在本发明实施例 中选择10个用于建模的特征点,包括眉毛外角2个,眼角2个、鼻尖1个、嘴 部4个、下巴1个(注:不同实施例可以有所不同,均适用于本发明的方法)。 对于二维特征点采取主动形状模型(ASM)标定并进行手动微调,因为特征点数 目不多,故非常易于实现。三维模型编辑器实现中性人脸上的三维特征点标定, 用户在屏幕上随机选择一个点,三维模型编辑器以该点向无穷远处发射一条射 线,然后搜索中性人脸上与该射线相交的三角片,最后选择该三角片上与交点 最近的顶点作为用户所选择的三维特征点。因中性人脸三维模型是固定的,故 在特征点不变的情况下,只需要进行一次三维特征点的标定、保存即可完成三 维特征点的选择。
(2)人脸几何形状重建模块
采用两步人脸形状建模方案(TSFSM)。首先估计输入照片上二维特征点的 深度值,所有特征点作为一个整体,将其组合成一个稀疏的形状向量。然后, 采用一个优化算法对稀疏线性模型进行系数求解,并对缺失的数据(即所有特 征点的z值)进行统一估计。
如图2所示为本发明两步人脸形状建模方案的流程图,图中:第1步,估 计二维特征点的深度值,构造类三维坐标特征点;第2步,根据类三维特征点 用形变算法实现特定人脸的形状重建。
具体过程如下:
已知输入人脸照片上及人脸库中三维中性人脸上对应的k个特征点的情况 下,将三维中性人脸上的特征点线性组合构造一个稀疏形状向量
令为三维人脸库所有稀疏形状向量的集合, 其中m是库中三维人脸的数目。对S进行主成分(PCA)变换后,得到一组特征 值(σ1,…,σm′)和
特征向量(q1,…,qm′),根据PCA原理,可以用缩放后的特征矩阵 Qs=(σ1q1,…,σm′qm′)建立如下所示的稀疏线性模型来估计任意稀疏形状向量,
sest=s+Qs·β=s+Δs
其中,特征矩阵Qs是已知的,β是估计特征点坐标的组合系数,也是估计人 脸特征值坐标的关键。本发明根据已知的二维特征点坐标建立目标函数,通过 计算极值得到最优解β0,获得到全部特征点的所有坐标的估计值sest:
根据SVD分解可知,
其中Qs 2D是Qs的二维版本,通过取Qs中对应于 (x,y)分量的行构成的稀疏特征矩阵,η是调节系数(η等于0时,β0取值等于用 最小二乘法直接求解;当η远大于0时,β0趋近于0),本实施例中取0.1。同理, Δs 2D是由输入的二维照片上特征点的二维坐标与中性人脸三维特征点的(x,y)分 量的差值所构成的稀疏矩阵。将β0代入稀疏线性模型可以得到全部特征点的所 有坐标的估计值sest将已知的二维特征点坐标(即输入照片上所标定的特征点
位置)与sest中所估计的顶点深度值进行组合生成二维特征点的Q-3D坐标。在获 取了二维特征点的Q-3D坐标后,就可以进行中性人脸向特定人脸的拟合。首先, 将中性人脸上的特征点按照Q-3D坐标进行调整,然后采用狄利克里自由变形 (DFFD)算法对其它非特征点进行调整。DFFD的特点是具有较好的局部性、平 滑性,因此,本发明可以生成个性明显、光滑的三维人脸几何模型。
(3)纹理映射模块
纹理映射模块根据所输入的单张人脸照片创建三维人脸的纹理图像。对三维 人脸几何模型进行纹理映射,可以弥补几何模型的不足,提高人脸的真实感。 如果直接将一张正面人脸照片投影到三维模型上,那么脸颊等边缘部分的许多 顶点将不能被覆盖到,本发明先根据人脸的主要特征点(如眼角2个、鼻尖1 个、嘴部4个)将人脸进行分割,然后对非特征区域进行扩张以增加人脸图像 覆盖的范围,创建三维人脸的纹理图。以下以一具体实例为例进行具体描述。
如图3前2张图片所示,在一张正面人脸照片上,将人脸的三个主要特征区 域——眼睛和眉毛、鼻子、嘴巴等根据特征点分割出来。另外,找到这些区域 在三维人脸形状模型上对应的区域,通过线性插值方法找到二维图像
像素与三 维顶点之间的对应关系,从而获得三维顶点的
颜色值。
由于人脸照片通常都有背景,对于非特征区域,三维顶点与二维像素之间就 不能找到直接的对应关系。为了增加人脸图像的覆盖面积,本发明首先把非特 征区域进行扩张以生成纹理图,结果如图3第4张子图所示。然后,我们用三 维形状模型非特征区域上顶点的法向量来判断该顶点是否被遮挡,从而判断是 否用图像上对应像素的颜色值对其进行着色:
令顶点Vi(xi,yi,zi)的法向量为ni,Ai是该点法向量与Z轴正方向之间的夹角, 设定
阈值t1(本实施例中t1取70度),如果Ai≤t1,将像素的颜色值赋予顶点vi; 反之,将vi的颜色值设置为空。对于所有颜色值为空的顶点,我们采用阈值t2选 择基于块填充方法或插值法进行空白点的填充。
基于块填充方法进行空白点的填充的步骤包括,令以空白点为中心的子方块 (例如大小可为5*5)为pat0,然后在整个纹理图上搜寻与该子块颜色值最接近的 子块,将该子块的颜色整体赋值给pat0,则阈值
插值法的过程包括:令p0为一个空白点,插值法则通过p0周围顶点的颜色值 进行插值计算,计算需要填充的空白点的插值颜色:
很明显,上式就是通过加权求和计算插值颜色。其中,n=8是指与p0相邻 的8个方向,如图4所示,权值λ大小与p0同周围顶点的距离成反比。
在本发明的实施例中,首先用TSFSM根据人脸10个主要特征点进行形状重 建,其中形变算法采用DFFD;然后进行基于单张照片的纹理映射,对三维人脸几 何模型进行纹理映射,以弥补几何模型的不足。如图5是采用本发明方法对一 组真实人脸照片的重建结果。第1部分是输入的人脸照片及其特征点,第2部 分是拟合的形状点在原始图片上投影图,可以看到估计的三维点能够较好地与 原始相片拟合;第3部分是重建的三维人脸正面、侧面图;第4部分演示了通 过三维人脸与原始照片合成新姿态照片的过程。通过对这些人脸照片的重建, 可以看到,采用本发明重建出的三维人脸模型在一定角度内具有非常逼真效果。 同样地,通过建立其它物体的统计模型,本发明还可以用于这些物体的三维重 建。