第4卷第6期 智能系统学报 Vol.4 No.6 2009年12月 CAAI Transactions on Intelligent Systems Dec.2009 doi:10.3969/i.i8sn.1673-4785.2009.06.008 双目立体视觉的三维人脸重建方法 贾贝贝,阮秋琦 (北京交通大学计算机与信息技术学院,北京100044) 摘要:创建逼真的三维人脸模型始终是一个极具挑战性的课题.随着三维人脸模型在虚拟现实、视频监控、三维动 画、人脸识别等领域的广泛应用,三维人脸重建成为计算机图像学和计算机视觉领域的一个研究热点.针对这一问 题,提出一种基于双目立体视觉的三维人脸重建方法,重建过程中无需三维激光扫描仪和通用人脸模型.首先利用 标定的2台摄像机获取人脸正面图像对,通过图像校正使图像对的极线对齐并且补偿摄像机镜头的畸变;在立体匹 配方面,选择具有准确可靠视差的人脸边缘特征点作为种子像素,以种子像素的视差作为区域生长的视差,在外极 线约束、单调性约束以及对应匹配的边缘特征点的约束下,进行水平扫描线上的区域生长,从而得到整个人脸区域 的视差图,提高了对应点匹配的速度和准确度;最后,根据摄像机标定结果和立体匹配生成的视差图计算人脸空间 散乱点的三维坐标,对人脸的三维点云进行三角剖分、网格细分和光顺处理.实验结果表明,该方法能够生成光滑、 逼真的三维人脸模型,证明了该算法的有效性. 关键词:三维人脸模型;双目立体视觉;摄像机标定;极线几何;立体匹配;区域生长;三角剖分 中图分类号:TP391文献标识码:A文章编号:16734785(2009)06051308 3D face reconstruction using binocular stereo vision JIA Bei-bei,RUAN Qiu-qi (School of Computer Science and Information Technology,Beijing Jiaotong University,Beijing 100044,China) Abstract:Generation of lifelike 3D human faces is a challenging task.Recent increases in the use of 3D face mod- els in virtual reality,video surveillance,3D animation,and face recognition have led to 3D face reconstruction be- coming a research hotspot.The authors proposed a 3D face reconstruction method based on binocular stereo vision theory.After capturing the front view of a face with two calibrated cameras,the captured pair of stereo images were rectified to align their epipolar lines and compensate for image distortions.To obtain maps with accurate matching and dense disparity,a stereo matching algorithm based on region growing was developed.An edge feature point with reliable disparity was selected as a seed point.Then region growing was performed along horizontal scan-lines under multi-constraints.With camera calibration and disparity mapping,3D coordinates of corresponding points were calculated.Then the face model was reconstructed with a series of methods,such as Delaunay triangulation, mesh subdivision and smoothing.Experimental results showed that the method can generate a smooth and lifelike 3D face model. Keywords:3D face model;binocular stereo vision;camera calibration;epipolar geometry;stereo matching;region growing;delaunay triangulation 由于人脸信息在人类日常生活和生产实践中起 有重大意义的研究课题.自20世纪70年代Parke 着十分重要的作用,而人脸重建提供了表达和处理 建立第一个脸部模型山开始,许多研究人员致力于 人脸信息的有效手段,因此三维人脸重建是一项具 三维人脸建模的研究.近年来,随着三维人脸模型在 虚拟现实、三维动画、视频监控、人脸识别等领域的 收稿日期:200904-15. 广泛应用,三维人脸重建已经成为计算机图像和计 基金项目:国家自然科学基金资助项目(60672062):高等学校博士学 科点专项科研基金资助项目(200800040008). 算机视觉领域的一个研究热点.然而,由于人脸具有 通信作者:贾贝贝.E-mail:jiabeibei0129@163.com. 复杂的几何形状和表面材质,同时头发的模拟、逼真
514 智能系统学报 第4卷 纹理信息的添加、光照的处理等诸多问题都使得三 昂贵的三维扫描仪和标准人脸模型,采用2台摄像 维人脸建模始终是一个极具挑战性的课题, 机同时从不同角度拍摄人脸,进行立体图像匹配,再 本文以双目立体视觉理论为基础,以人脸为研 采用三角测量的方法从视差中恢复三维人脸数据: 究对象,构建一个基于双目立体视觉的三维人脸重 由于该方法采用的设备简单,而且可以实现实时采 建系统,重建过程中无需三维激光扫描仪和通用人 集,现在已成为机器视觉研究领域的一个研究热点. 脸模型.首先进行摄像机标定,利用双目摄像机采集 2摄像机标定 左右人脸图像对,校正图像对使极线对齐,然后选择 具有准确可靠视差的人脸边缘特征点作为种子像 要从立体人脸图像对中提取人脸的三维信息, 素,以种子像素的视差作为区域生长的视差,采用基 必须要进行摄像机的标定],即根据一组已知的条 于区域生长的立体匹配算法获取整个人脸的视差图 件利用摄像机模型来获取摄像机的各个内外参数, 进而计算人脸三维点云数据,最后对三维点云进行 比较常用的摄像机模型是针孔透视模型.于是,得到 三角剖分、网格细分和光顺处理重建光滑逼真的三 像平面坐标系与世界坐标系的映射关系: 维人脸模型. 0 u0 t 1三维人脸重建研究现状 1) 0 -00.1 0 获取脸部的三维数据是形成特定人脸模型的基 1 础,根据三维数据的来源不同,国内外现有的三维人 式中:(u,)和(X,Yn,Z)为空间P点在图像坐标 脸重建方法可分为2类:基于三维数据的三维人脸 系和世界坐标系下的坐标,ff,、、是摄像机内 重建方法和基于图像的三维人脸重建方法 部参数,旋转矩阵R与平移向量t描述摄像机与世 第1类是基于三维数据的三维人脸建模方法, 界坐标系之间的关系,称之为摄像机的外部参数. 即从激光扫描仪(laser scanner)[23)得到三维数据进 这里,采用基于平面棋盘格标记物的摄像机标 行模型的拟合.Lee等人2]利用通过激光扫描仪获 定方法.为简化计算,设模板所在平面为世界坐标系 得的三维几何数据和纹理信息,调整已有的标准网 的。=0平面.用r:表示R的第i列向量,那么对于 格头部模型来构建特定人脸模型;Blanz和Vetter3] 模板平面上的点都有: 利用激光扫描仪建立了一个包括三维距离信息和表 面纹理信息的头部数据库.利用激光扫描获取的三 维人脸数据精度高、速度快,但是由于设备是侵入式 的且价格昂贵,所以实用性较差 第2类是基于图像的三维人脸建模方法,即从 普通摄像机获取的一幅或多幅图像出发进行建模, (2) 比较有代表性的有修改标准模型和采用双目立体视 觉的方法.修改标准模型进行三维人脸建模是指将 ☒ 标准人脸模型作为先验知识,通过刚体变换、形变等 M=[X.Y。1], 手段与具体的人脸数据拟合达到形状匹配,并且利 m =[u v 1]", 用图像合成面部纹理信息,从而建立逼真的三维人 H=A[r1r2t]=[h1h2h3]. 脸模型.Ansari等人[41从正面和侧面人脸图像提取 则式(2)可写为 信息进行标准人脸模型的修正,但需要严格侧面人 sm HM. (3) 脸图像,否则算法失败的可能性较大.Lu等人[51提 式中:A是摄像机内部参数矩阵,是模板上的点和它 出利用MBA(model-based bundle adjustment)方法形 的像点之间的一个映射. 成特定人脸模型,但需要人工标注特征点: 若已知模板点的空间坐标和图像坐标,通过解 通过分析可以看出,上述的三维人脸重建方法 最小二乘方程并用Levenberg-Marquarat算法进一步 都存在各自的局限性.而基于双目立体视觉的三维 求精,就可以求得H矩阵,据此求摄像机的内外参 人脸重建方法[6]从人类视觉机理角度出发,无需 数.利用Choleski分解就可以先得到内参,然后利用
第6期 贾贝贝,等:双目立体视觉的三维人脸重建方法 ·515· 矩阵A和H,求摄像头外参数,如式(4) 则位于左图像(x,y)处的像素和位于右图像(x,y+ r AA"h,n2 AA"h2,r3 =n xn2, d)处的像素是对应点, t=入Ah3,入= 1 与传统的逐点计算的方法相比,区域生长算法 1A-h,I=IAh,I 极大提高了匹配的效率,对连续表面的匹配效果也 (4) 更好 图像畸变会对标定结果产生较大的影响。一般 地,标定主要考虑径向畸变,忽略其他畸变因素,这 里,采用Zhang的方法来处理畸变问题, R R. L R 3立体匹配算法 基于双目立体视觉的三维人脸重建系统的一个 (a)左图像 (b)石图像 关键技术是求解立体图像对的对应点问题,即解决 图1种子像素确定的区域生长范围 立体匹配问题,以便得到视差图(disparity map).目 Fig.1 The rage of region growing by seed points 前,立体匹配算法主要分为基于特征和基于区域 3.2改进的基于区域生长的立体匹配算法 2类.前一类选取图像中具有惟一性质的点作为匹 3.2.1约束条件 配点,通常选择边缘、角点等,大大减少了搜索范围, 1)极线约束:如图2所示,0,和0R分别为左、 但是只能得到稀疏的视差图;后一类考虑每个需匹 右像平面的光心,P和p分别为空间一点P点在左、 配点的邻域性质,能够得到稠密的视差图,但是对无 右像平面的投影点,平面POOR成为极平面,极平 纹理的区域表现欠佳,且计算量大,匹配速度慢.通 面与左、右像平面的交线pe和p'e'成为极线.极线 过以上分析,采用结合特征技术的基于区域生长算 约束了立体图像对应点的位置,即空间点P在左像 法的立体匹配算法 平面上投影点p所对应的右像平面投影点必在极线 3.1基于区域生长的立体匹配算法 p'e'上,反之亦然. 区域生长算法[]的基本思想是将具有相似性 质的像素集合起来构成区域。首先,在每个需要分割 的区域选择一个种子像素作为生长的起始点,然后 根据某种事先确定的生长或相似准则,将种子像素 周围邻域中与种子像素有相同或相似性质的像素合 并到种子像素所在的区域。此时将新合并的像素作 0 为新的种子像素,继续以上搜索和合并过程,直到没 有可以合并的像素为止,这样一个区域就生长成了: 图2极平面和极线示意图 如图1所示,若已知左图像上的一个种子像素 Fig.2 Epipolar plane and epipolar lines 2)单调性约束:沿着匹配点的共轭极线,所有 L1与右图像上一点R,匹配,则与L1相邻的点L2和 可见点都保持同样的次序,即匹配点在2幅图像中 L3的匹配点必定在R,点的附近.这样L2和L3的匹 的先后顺序必须一致.根据单调性约束,区域内每个 配点的搜索范围就可以限制在R点的一个较小的 邻域内,通常只需要在十几个像素大小的搜索窗内 像素的匹配点就限制在右图像对应像素行的一定区 域内 计算匹配代价函数,求出最大的匹配度,即可认为是 3)平行立体视觉:为了进一步降低算法的复杂 所求点的可靠匹配.这里,采用差值平方和(SSD)定 度,双目系统采用的是平行光轴模型,即平行双目立 义匹配代价函数e(i,j,d): ei.=Σ龙(.(,》-12,y+d0月 体视觉系统,此时外极线与图像扫猫线是重合的,如 「mn台y司 图2中虚线所示.所以块匹配的搜索窗由二维区域变 (5) 为一维线段,匹配点只需要在扫描线上寻找。依次对 式中:I(x,y)和Ig(x,y)分别为左图像和右图像第 每条水平扫描线上的像点在极线约束和单调性约束 x行、第y列像素的灰度值,d为视差,m×n为模板 下进行匹配,进而得到立体图对的视差.因此,只需要 尺寸.选择左图像为参考图像,右图像为匹配图像, 在一维水平方向上进行区域生长,即只需要考虑与种
·516 智能系统学报 第4卷 子像素相邻的像素点,这大大缩小了搜索空间! 实际上,该算法可以理解为基于视差生长的立 3.2.2种子像素的初始化 体匹配算法,具体算法如下: 基于区域生长的立体匹配算法[2]的关键是需 1)种子像素选取:初始化时,选择边缘特征点 要找到少量准确、可靠的匹配点对作为种子像素,之 作为种子像素进行区域生长.当以边缘特征点作为 后就可以根据它们之间的相对位置关系将匹配迅速 种子像素的区域生长完成后,选择一个不属于任何 传播到整个图像区域,这对于提高系统的可靠性和 已生长区域的像素点,在边缘特征点的视差约束下 效率有着直接的影响.考虑到三维重建的对象是人 利用式(5)计算一维的搜索窗中的匹配代价函数, 脸,首先要确定人脸的区域,而图像中人脸的边缘特 选取最可靠的视差,选取该点为种子像素,并且设该 征是三维人脸重建的重要信息,它在2幅图像中产 点视差为区域视差,然后执行2).如果没有找到任 生相似的结果并且分布较合理,所以选择人脸边缘 何小于预先给定的匹配代价门限T的匹配点,对下 特征点作为初始种子像素. 一个相邻像素点重复这个步骤. 选择用Canny算子提取单像素人脸边缘,根据 2)区域生长:利用种子像素的视差值,计算与 以上约束条件在相应的水平扫描线上进行边缘特征 种子像素相邻的像素点的匹配代价.如果满足式 点的匹配.对左图像的每个特征点,把其在右图像相 (6),则将该像素包括进种子像素所在区域,否则丢 应的像素行中所有可能的匹配点组成一个集合.其 弃该点 中d或者是特征点与可能匹配点的视差,或者是代 3)视差图生成:反复执行2)直到没有可以再合 表无匹配点的特殊符号.对每个可能匹配点,可以设 并的像素为止,这样一个区域就生长成了.返回1) 定初始匹配概率P(1),计算式(5)的匹配代价函 找到新的种子像素后重复以上步骤.当图像中所有 数,e(i,j,d)与初始匹配概率po(l)成反比.换句 像素点被标记过后,则结束算法.此时,视差图d(i, 话说,P(1)与可能匹配点邻域中的相似度有关, )生成. 因此,可以利用松弛迭代法,给可能匹配点邻域中视 差比较接近的点以正的增量,而给可能匹配点邻域 4三维人脸重建算法 中视差比较远的点以负的增量来对p(1)进行迭 4.1 空间点的三维重建算法 代更新.随着迭代的进行,正确匹配点的第k次迭代 本文采用的双目立体视觉系统由2个相同的摄 匹配概率P)()会逐渐增大,而其他点的匹配概率 像机组成,且它们坐标系统的各对应轴平行,即平行 产P()会逐渐减小,经过一定次数的迭代后,将 光轴模型.设摄像机的焦距为∫,2个光心间的距离 匹配概率P()最大的点,也就是匹配代价最小的 (基线)为b,以左摄像机坐标系为世界坐标系,空间 点确定为匹配点,此时的d就是左图像点(i,)处匹 点P的世界坐标为(X,Y,Z),在左右摄像机坐标系 配可信度最高的视差估计. 下的坐标分别为(x1,y1,1)和(x2,y2,22),在左右图 3.2.3改进的区域生长算法 像平面上的坐标为(山1,v:)和(2,2),其中视差d= 基于区域生长的立体匹配算法的2个关键是: u1-42 1)选择一组能正确代表所选区域的种子像素; 根据成像的几何比例关系,对于左右摄像机有 2)确定在生长过程中能将相邻像素包括进来 如下关系: 的准则. 41 1 这里设定这样的准则:对于与种子像素相邻的 (7) 点,将种子像素的视差值d代入匹配代价函数,如果 满足e(i,j,d)<T,其中T为预先给定的匹配代价门 限,就将相邻像素包括进来,这时合并到种子像素所 世界坐标系与摄像机坐标系的关系表述如下: 在区域的所有像素具有相同的视差值,即整个生长 =x1=x2+b 区域具有相同的视差值.上述准则可以描述为 Y=y1=y2, (8) d(i+1j)=d(ij),e(i+1j,d(i))<T; Z=名1=22 d(i+1J)=drin(el(i+i1,e(i+1j,d(i))>T 由此,可计算空间点的三维坐标: (6)
第6期 贾贝贝,等:双目立体视觉的三维人脸重建方法 ·517· X= 2 山1·b 基于三角形控制网格的细分,该细分方法所生成的曲 d, 面是基于四次B样条曲面.现已证明细分曲面在正则 Y= Z_1·b 点处达到C连续,在奇异点处达到C连续,具有细 dΓ, (9) 分规则简单、细分后光滑性好等特点.L00叩细分算法 2=:6 是逼近型14分裂算法,基本思想是在三角形的每一 边上新插入一个结点后将其分成2段,原三角形的顶 上式把三维物体的深度Z与视差d直接联系 点将被新的结点代替,于是一个三角形单元将被4个 起来,而深度反映了三维空间信息.如果已知基线和 小三角形单元代替.插入点生成规则如下: 焦距,确定视差d后就可以计算P点的Z坐标,进 ①若内部边有2个顶点和1,共享此边的2 而求出P点的世界坐标X和Y.这样,运用式(9)就 个三角形为(,1,2)和(o,1,3),则新边点g为 可以得到人脸立体图像对中所有匹配点的三维坐 标.为了得到更加光滑的三维人脸深度,在计算深度 红=君(o+)+ga+小 (10) Z之前使用5×5的中值滤波器对视差d进行平滑 ②若内部顶点v的1-邻域顶点为:(i=0,1, 处理. …,n-1),则新生成的顶点y为 4.2三维人脸模型的三角网格生成算法 当所有匹配点的三维坐标都计算出来后,可以 y=(1-nB)v+B∑, (11) 将这些离散点在三维空间中直接显示出来,但是为 式中:B为邻点权值. 了得到真实感的三维人脸模型,有必要进行三维数 = 据点的三角剖分.如果直接在三维空间中进行三角 B=(骨-(停+o2)n 剖分,那么必须要讨论空间3个相邻点的位置问题, ③若边界边的2个顶点为和1,则新边点vs为 即以这3个点所构成的球体中不能包括其他的点 0g=2(0+: (12) 考虑到这种情况比较复杂,先将三维数据点一对一 ④若边界顶点"在边界上的2相邻顶点为o 地投影到二维平面区域,在二维区域上进行投影点 和,则新生成的顶点v为 的三角化,然后通过点的对应关系基本上实现空间 1 1 .3 点的三角剖分.对二维空间离散点集的剖分而言, w=80+81+4. (13) 存在着许多种三角剖分算法.俄国数学家Delaunay 根据插入点的生成规则计算出网格每一条边的 在1934年证明了必定存在且仅存在一种剖分算法, 边点vE和每一个顶点的顶点y,将新边点和新顶点 使得所有三角形内角之和最大(称为Delaunay三角 连接起来,生成一个新的三角网格,直到最后收敛于 剖分).Delaunay三角剖分具有平均形态比最大的 极限曲面, 性质,能够尽可能地避免病态三角形的出现,是目前 3)网格优化:采用Laplacian151光顺技术,通过 公认的一种最佳的三角剖分方法[2-] 调整三角形网格的顶点位置来提高网格质量,得到 为了得到高质量三维人脸模型的三角形网格, 优化的三维人脸模型.设三角形网格顶点:,= 对人脸散乱数据点进行如下操作: 0,1,…,n-1)是与:邻接的n个网格顶点.顶点: 1)初始网格生成.对散乱点进行排序,搜索X 的一阶、二阶Laplacian算子定义为 坐标最小的点,设该点为,按照与1点的距离的 n-1 平方递增的顺序排列各点,形成序列1,2,…,v n 将1与2相连构造第一条边,在:序列中顺序搜 E(,)=12(-(u)). (14) n 索与1和2不共线的点,记作k,则将插入 则顶点:的新位置为 前,其余点顺序后移,将1、2、3点相连形成第1 个三角形和初始网格前沿边界.接下来采用网格前 时=75(e. (15) 沿技术,逐点向外扩展,根据最小内角最大准则形成 初始的人脸三角网格, 式中:y=上Σ,这里,和M,分别是顶点,和它 n:了nJ 2)网格细分.采用Lo0p细分方法[41,这是一种 的第j个相邻点的度