首页> 中国专利> 基于图像的超现实主义三维脸部建模的方法和设备

基于图像的超现实主义三维脸部建模的方法和设备

摘要

提供了一种用于基于图像的三维超现实主义头部建模的设备和方法。用于创建三维超现实主义头部模型的方法包括:在输入的正面和侧面图像中检测正面和侧面特征;通过使用检测到的脸部特征拟合三维通用模型来生成三维头部模型;根据输入的正面和侧面图像生成逼真的纹理;以及将所述纹理映射到三维头部模型上。在所述设备和方法中,利用诸如数字相机的相对廉价的设备获得的数据可以自动方式进行处理,并且甚至可以从不完善的输入数据获得令人满意的效果。换言之,可以自动的方式提取脸部特征,并且使用稳定的“人类品质”脸部分析算法。

著录项

  • 公开/公告号CN1607551A

    专利类型发明专利

  • 公开/公告日2005-04-20

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;

    申请/专利号CN200410098195.4

  • 申请日2004-08-30

  • 分类号G06T17/00;G06T15/20;

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人邸万奎;黄小临

  • 地址 韩国京畿道

  • 入库时间 2023-12-17 15:55:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2007-10-24

    授权

    授权

  • 2006-05-03

    实质审查的生效

    实质审查的生效

  • 2005-04-20

    公开

    公开

说明书

技术领域

本发明涉及图像处理,具体而言,涉及基于图像的超现实主义三维脸部建模的方法和设备。

背景技术

在计算机图形领域中,自动的超现实主义三维脸部建模因其在各种领域的广泛应用而被认为是非常重要的工作,所述领域诸如虚拟空间创建、计算机游戏、视频会议和卡通制作。

尽管用于从复杂的对象中抓取精确的三维图像的激光扫描器以及使用结构光的测距设备是目前普遍使用的,但是它们的成本很高,并且不易于使用。计算机辅助有源脸部间建模技术需要专家指导及艰苦的工作。因此,集中的工作已经致力于允许普通PC用户更加容易地重建更逼真的人脸模型。换言之,需要开发一种算法,所述算法易于由普通的PC用户控制,根据不完善的输入数据能够自动构造合乎需要的脸部,所述输入数据可以使用经济的成像装置获得,诸如数字照相机。

根据所使用的三维脸部形状数据源,可以将用于自动脸部模型重建的系统大致分为几类。开发技术的一些研究人员通过激光扫描器或者结构光设备来获得脸部数据。采用这些技术出现了这样的问题,即:设备昂贵并且难以使用。

许多工作已经致力于根据正面和侧视图来创建脸部模型。然而,在没有专用辅助装置的情况下使用普通的手持式照相机时,难以实现两个图像之间的绝对正交关系,因此根据不同视图直接获得的形状信息具有一些冲突。此问题仍没有解决。

一些系统依赖于用户在几幅图中指定的特征点,这需要集中劳力进行人工操作并且需要很多时间。连同其它方法一样,使用光流的方法以及立体方法似乎朝重建过程的全自动化迈出了深远的一步,但是由此形成的模型包括相当多的噪声并且脸部表面也变形的不自然。

为了避免脸部模型的不合需要的人为因素并且提高稳定性,一些研究人员使用允许使用有限数目的特征点的可变形的(morphable)脸部模型。将可变形的脸部模型与重构的三维点或者源图像匹配,并且要求基于模型的光束调整以便形状复原。这些方法极大地依赖于特征点集合的精确度和广度。

在利用立体重构获得精确模型的另一种方法中,形状复原仅限于对符合强加的附加约束的可变形模型,由此降低了模型的精确度。

一些研究人员基于有关深度的先验信息、已经试图仅根据一个正面图像来构建模型。然而,在该情况下形成的模型质量距离超现实主义甚远。

在脸部建模中的重要问题是自动提取脸部特征。已经提出了诸如基于外貌的脸部特征建模、基于人类视觉的算法、特定边缘以及低亮度像素模式的搜索、形态学操作器的使用等各种脸部特征检测方法。尽管在此领域中已有显著的发展,但是仍然需要大量的工作来提高创建“人类品质”脸部分析算法的精确度以及稳定性。

发明内容

本发明提供了一种基于图像的超现实主义三维脸部建模的方法和设备,其使用包括正面和侧面图像的两个图像或者包括正面、接近正面以及侧面图像的三个图像来实现。

根据本发明的一方面,提供了一种创建三维超现实主义头部模型的方法,所述方法包括:(a)在输入的正面和侧面图像中检测正面和侧面特征;(b)通过使用检测到的脸部特征拟合三维通用模型来生成三维头部模型;(c)根据输入的正面和侧面图像生成逼真的纹理;以及(d)将所述纹理映射到三维头部模型上。

根据本发明的特定实施例,在(b)中生成三维头部模型还可以包括根据正面图像和接近正面图像生成深度信息,其中所述通用模型使用脸部特征来拟合,以确定特殊脸部的三维形状,并且使用所述深度信息拟合所生成的三维头部模型。

在(a)中检测正面特征可以包括:检测皮肤区域;检测脸部区域;检测眼睛边框;检测虹膜;标准化所述正面图像,检测眼睛轮廓,检测眉毛,检测嘴唇轮廓,检测鼻子轮廓并且检测下巴和面颊轮廓。

标准化所述正面图像可以包括旋转所述正面图像,使得虹膜中心之间的线变成水平,并且将所述正面图像重新缩放为预定分辨率。

在(a)中检测侧面特征可以包括:检测侧面区域;检测侧面曲线;检测基准点;以及检测耳朵轮廓。

根据正面以及接近正面图像生成深度信息可以包括:确定正面图像中的特征点;对所述特征点执行基于模型的Lucas-Kanade(卢卡斯-卡那德)跟踪,以得到接近正面图像中的对应点;使用匹配对应关系、通过数据内插来获得密度差异映射(disparity map);以及将差异映射转换为所述深度信息。在该情况下,将所述差异映射转换为深度信息可以包括:获得极大和极小差异值之间的差值;通过用头部宽度除所述差值并且将除得的结果乘以预定常量来确定系数;以及通过将所述系数乘以从测量的差异值中减去最小差异值所获得的值来获得像素的深度值。

在(b)中拟合所述通用模型可以包括:对应于在三维通用模型中定义的特征、使用三维通用模型的脸部特征曲线上的特征点长度比,将在图像中检测到的特征曲线转换为二维点;以及基于图像特征和三维通用模型的特征点之间的对应关系,通过基于3步基于半径函数(RBF)变形来拟合三维通用模型。

在(c)中生成逼真纹理可以包括:对输入的图像执行色彩校正,以补偿不同照明条件或者照相机之间的色彩平衡变化;基于三维模型顶点和投射的二维位置之间的对应关系、通过将正面和侧面图像映射到公共UV平面上来生成正面和侧面纹理;以及使用多分辨率样条算法来组合正面和侧面纹理以及人造的纹理,以便完成组构。

根据本发明的另一方面,提供了一种用于创建三维超现实主义头部模型的设备,所述设备包括:脸部特征检测单元,用于在输入的正面和侧面图像中检测正面和侧面特征;脸部模型拟合单元,用于通过使用检测到的脸部特征拟合三维通用模型来生成三维头部模型;纹理生成单元,用于根据输入的正面和侧面图像生成逼真的纹理;以及映射单元,用于将所述纹理映射到在脸部模型拟合单元中生成的三维头部模型上。

根据本发明的具体实施例,所述脸部模型拟合单元可以包括深度信息生成部件,用于从正面图像和接近正面图像中提取深度信息,并且通过使用在脸部特征检测单元中检测到的脸部特征以及在深度信息生成部件中生成的深度信息拟合通用模型来生成三维头部模型。

所述脸部特征检测单元可以包括:用于检测正面特征的正面特征检测部件;以及用于检测侧面特征的侧面特征检测部件。所述正面特征检测部件可以包括:用于检测皮肤区域的皮肤区域检测部件;用于检测脸部区域的脸部区域检测部件;用于检测眼睛边框的眼睛边框检测部件;用于检测虹膜的虹膜检测部件;以及用于标准化所述正面图像的正面图像标准化部件。

所述正面特征检测部件还可以包括眼睛轮廓检测部件、眉毛检测部件、嘴唇轮廓检测部件、鼻子轮廓检测部件以及下巴及脸颊轮廓检测部件中的至少一个。

所述侧面特征检测部件可以包括侧面区域检测部件、侧面曲线检测部件、基准点检测部件以及耳朵轮廓检测部件。

所述深度信息生成单元可以包括:特征点检测部件,用于确定正面图像中的特征点,并找到在接近正面图像中对应的特征点;差异获得部件,用于使用匹配对应关系、通过数据内插来获得密度差异映射;以及差异到深度信息转换部件,用于将差异映射转换为深度信息。

所述通用模型拟合单元可以包括:二维点转换部件,用于对应于在三维通用模型中定义的特征、使用三维通用模型的脸部特征曲线上的特征点的长度比,将在图像中检测到的特征曲线转换为二维点;以及网格模型拟合部件,用于基于图像特征和三维通用模型的特征点之间的对应关系,通过基于3步的基于半径函数(RBF)变形来拟合三维通用模型。

所述纹理生成单元可以包括:输入图像补偿部件,用于通过对输入的图像执行色彩校正来补偿不同照明条件或者照相机之间的色彩平衡变化;正面/侧面纹理生成部件,用于基于三维模型顶点和投射的二维位置之间的对应关系、通过将正面和侧面图像映射到公共UV平面来生成正面和侧面纹理;以及组构完成部件,用于使用多分辨率样条算法来组合正面和侧面纹理以及人造纹理,以便完成组构。

根据本发明另一方面,提供了一种计算机可读介质,其中具有实现上述基于图像的超现实主义三维头部建模方法的计算机程序。

附图说明

通过参照附图详细说明本发明的示例性实施例,将使本发明的上述及其他特征和优点变得更加明显,其中:

图1是根据本发明的基于图像的超现实主义三维脸部建模方法的流程图;

图2示出了用照片建模的详细过程;

图3示出了通用模型的正面和侧面视图;

图4示出了代表性的输入的正面、接近正面以及侧面图像;

图5是根据本发明的基于图像的超现实主义三维脸部建模设备的框图;

图6示出了脸部特征检测单元的详细结构;

图7示出了正面特征检测部件的详细结构;

图8和9是详细的正面特征检测(提取)的流程图;

图10示出了皮肤似然图像和脸部区域检测的例子,其中较小的椭圆对应于初始区域,而较大椭圆对应于检测到的结果;

图11示出了皮肤似然图像和脸部区域检测的另一个例子;

图12A是图7的脸部区域检测部件的框图;

图12B是脸部区域检测的流程图;

图13示出了用于脸部区域检测的椭圆模型;

图14A是图7的眼睛边框检测部件的框图;

图14B是眼睛边框检测的流程图;

图15示出了示范性的眼睛变化图像;

图16示出了另一个示范性的眼睛变化图像;

图17示出了眼睛边框检测结果;

图18A是图7的虹膜检测部件的框图;

图18B是检测虹膜的中心和半径的流程图;

图19示出了检测到的虹膜的例子;

图20是用于眼睛轮廓检测的近似法的流程图;

图21是用于眼睛轮廓检测的在眼睛区域沿水平方向中红色通道强度的图表;

图22示出了用于眼睛轮廓检测的点以及检测到的眼睛轮廓;

图23示出了垂直眉毛位置的检测;

图24示出了眉毛边框;

图25示出了检测到的眉毛;

图26是上下嘴唇检测的流程图;

图27示出了嘴唇矩形的迭代细化;

图28示出具有初始化嘴唇点的嘴唇函数图像;

图29示出了作用在嘴唇轮廓点的力;

图30示出了嘴唇轮廓更新的一步;

图31是在鼻子侧轮廓检测过程中鼻翼检测的流程图;

图32示出了鼻翼模板;

图33示出了在图像中检测到的鼻翼候选者;

图34示出了鼻部曲线的主要特征点的位置;

图35示出了检测到的鼻部曲线;

图36A是图7的下巴及脸颊轮廓检测部件的框图;

图36B是下巴及脸颊轮廓检测的流程图;

图37示出了下巴/脸颊可变形的模型;

图38示出了下巴模型拟合过程;

图39示出了在正面图像中全部检测到的特征;

图40是侧面特征检测部件的详细框图;

图41是侧面特征检测的流程图;

图42示出了检测侧面区域已经失败并且出现不连续的皮肤以及鼻部区域的情况;

图43示出了检测侧面区域已经失败并且出现不完善的鼻部区域的另一种情况;

图44示出了检测侧面区域已经失败并且出现不完善的皮肤区域的另一种情况;

图45是用来解释一种典型的侧面函数的图像;

图46示出了鼻梁顶端以及鼻子下面点的检测;

图47示出了下巴以及颈部基准点的检测;

图48示出了嘴唇基准点的估算;

图49示出了自动地检测侧面特征(不包括耳朵);

图50是耳朵轮廓检测的流程图;

图51是耳朵初始化的流程图;

图52示出了用于侧面耳朵检测的曲线模板;

图53示出了在耳朵轮廓检测中用于耳朵位置初始化的标准化图像、标定点以及耳朵搜索区域。

图54示出了在脸部区域接近耳朵区域中的皮肤和头发边界;

图55示出了使用彩色信息进行耳朵初始化的结果,其中红色部分与耳朵模板匹配;

图56示出了使用耳朵边缘信息进行耳朵初始化的结果,当只使用彩色信息进行侧面耳朵检测失败时可以执行它;

图57示出了侧面耳朵检测结果;

图58示出了用于模型拟合的输入的脸部特征曲线;

图59是图5的脸部模型拟合单元的框图;

图60是在脸部模型拟合单元中初始模型拟合的流程图;

图61示出了从正面特征曲线中抽取的关键点;

图62示出了通用的(上一行)以及创建的脸部模型(下一行);

图63是图5的纹理生成单元的框图;

图64是纹理生成的流程图;

图65示出了UV平面上的正面纹理图像;

图66示出了UV平面上的侧面纹理图像;

图67示出了根据输入图像以及人造纹理获得的最终纹理图像;

图68示出了使用组构模型以及人造耳纹理获得的改善了的图像;

图69示出了示范性的脸部的立体像对;

图70是图5的深度信息生成单元的框图;

图71是根据正面以及接近正面图像生成深度信息的流程图。

具体实施方式

将参考附图说明本发明的实施例。

在详细说明本发明之前,先描述根据本发明的基于图像的超现实主义三维脸部建模的方法以及设备的要点,即涉及脸部特征检测、脸部模型拟合、纹理生成以及使用立体图像对进行三维重构。

根据本发明的建模设备使用两三个脸部的图像来生成超现实主义三维多项式脸部模型,所述脸部图像可以是正面和侧面两个图像、或者是正面、接近正面和侧面三个图像。

图像获取条件很简单:好的对比度和锐度以及在脸部区域中足够的照明。

图1是根据本发明的基于图像的超现实主义三维脸部建模方法的流程图。图2示出了用照片建模的详细过程。

如图1和2所示,所述建模过程包括以下操作。首先,执行自动的正面特征检测和半自动的侧面特征检测(操作100)。第二,将通用三维头部模型(通用网格)变形以拟合正面脸部特征(操作120)。接下来,执行自动的基于模型的立体估算,以获得正面照片的深度图;并且再次将所述模型变形以拟合侧面特征和估算的立体深度图(操作140)。最后,根据正面和侧面照片以及在一些区域的人造皮肤创建模型纹理(操作160)。将所创建的纹理与匹配的头部模型一起映像,以生成三维头部模型(操作180)。

深度图和侧面特征两者的使用对于模型拟合来说似乎是多余的。然而,所述深度图提供了丰富的并且详细的几何信息,这使得最终模型看起来更逼真。

如果所述接近正面图像不可用,那么在根据本发明的三维脸部建模方法中可以省略使用接近正面图像的过程。在该情况下也可以获得合理的结果。

在根据本发明的三维脸部建模方法中,在通用模型拟合框架下创建新模型。也就是说,通过将通用模型与所输入的主题数据进行拟合来创建特殊的脸部。在图2中被称作“通用网格”的通用模型可以作为关于人类脸部的先验知识而获得,这样使得自动化处理更为容易,并且提高了脸部建模方法的稳定性。不包括眼球和头发,图3中所示的通用模型包括7,138个顶点和14,096个三角形。

将所述通用模型沿标准正面方位设置。也就是说,X轴是从右到左方向,Z轴是眼睛相切的方向,而Y轴是从底部向顶端的方向,由此形成了右手坐标系帧。如果没有特别说明,这种轴的方向将遍及以下描述使用。图4示出了具有代表性的正面、接近正面以及侧面输入图像。

图5是根据本发明的基于图像的超现实主义三维脸部建模设备的框图。所述设备包括脸部特征检测单元500、脸部模型拟合单元510、纹理生成单元520和映射单元530。所述设备还可以包括深度信息生成单元540。

所述脸部特征检测单元500检测正面和侧面输入图像的脸部特征。所述脸部模型拟合单元510通过使用检测到的脸部特征拟合预定的通用模型来生成三维脸部模型。当还包括所述深度信息生成单元540时,所述脸部模型拟合单元510通过使用在脸部特征检测单元500中检测到脸部特征和深度信息生成单元540生成的脸部深度信息、拟合所述通用模型来生成三维脸部模型。

所述纹理生成单元520根据输入图像生成逼真的纹理。如果需要,所述纹理可以是人造纹理。所述映射单元530将所述纹理映射到脸部模型拟合单元510生成的三维脸部模型上。所述深度信息生成单元540从正面以及接近正面图像中提取脸部深度信息。

1.脸部特征检测

如图6所示,所述脸部特征检测单元500包括正面特征检测部件600、其检测正面脸部的特征;以及侧面特征检测部件650,其检测侧面的特征。

1.1.正面特征检测

参见图7,所述正面特征检测部件600包括皮肤区域检测部件700、脸部区域检测部件705、眼睛边框检测部件710、虹膜检测部件715以及正面图像标准化部件720。

如果需要,正面特征检测部件600还可以包括眼睛轮廓检测部件725、眉毛检测部件730、嘴唇轮廓检测部件735、鼻子轮廓检测部件740以及下巴及脸颊轮廓检测部件745。

将描述所述正面特征检测过程。图8和9是正面特征检测(提取)的流程图。所述正面特征检测过程包括皮肤区域检测(操作800)、脸部区域检测(操作810)、眼睛边框检测(操作820)、虹膜检测(操作830)、正面图像标准化(操作840)、眼睛轮廓检测(操作900)、眉毛检测(操作910)、嘴(嘴唇)轮廓检测(操作920)、鼻子轮廓检测(操作930)以及脸部(下巴以及脸颊)轮廓检测(操作940)。

每个步骤是依照这样的假设来执行,即假定先前的步骤已经成功并且先前检测到的特征具有合理的精确度。为此目的,如果在特征检测中存在误差,那么允许用户在每个步骤之后人工地修正特征检测误差。

1.1.1.皮肤检测

在标准化的r-g色度彩色空间中使用预先训练的最大似然贝叶斯分类器(Maximum Likelihood Bayes classfier)来进行肤色建模和检测。选择标准化的r-g彩色空间,是因为它允许快速并且简单地根据RGB空间进行转换,并且因为贝叶斯ML分类器在肤色建模中公知的良好性能。

通过引入两个统计量来执行训练,所述统计量是——p((r,g)| skin(皮肤))和p((r,g)|﹁skin),根据训练图像的脸部和非脸部区域、使用皮肤和非皮肤直方图构造来进行计算。通过计算输入帧的每个像素的此测量值来构造皮肤似然图像,公式为:

>>Skin>>(>r>,>g>)>>=>>>p>>(>>(>r>,>g>)>>|>skin>)>>>>p>>(>>(>r>,>g>)>>|>->,>skin>)>>>>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>>(>1>)>>>s>

当假定先验皮肤和非皮肤可能性等同时,其满足Bayes最大似然准则。图10和11中示出了由此形成的皮肤似然图像。

1.1.2.脸部区域检测

图12A是图7的脸部区域检测部件705的框图。所述脸部区域检测部件705包括脸部区域初始化部件1230,其初始化最大肤色连接部分作为脸部区域;椭圆稳定化部件1240,其基于初始化的脸部区域、通过移动椭圆的边界点来初始化并且进化椭圆,直到所述椭圆稳定为止;以及脸部区域确定部件1250,其将稳定的椭圆的边框确定为脸部区域。

图12B是脸部区域检测的流程图。根据本发明,使用椭圆区域和基于可变形椭圆模型的技术来检测脸部区域。参见图13,在期待的脸部区域初始化椭圆模型(操作1200)。期待的脸部区域可以是最大的肤色连接部分,或者具有可比尺寸的最大二个部分中比较接近图像中心的一个。

基于初始化的脸部区域移动椭圆的边界点,以便初始化和进化待稳定的椭圆(操作1210)。将详细说明此操作。

使用设置在椭圆边界上的许多矩形探针来控制处于椭圆边缘的肤色分布和模型变形。根据以下规则确定每个探针的位移量。

首先,如下计算两个值:

>>>P>in>>=>2>·>>>N>inside>>S>>,>>P>out>>=>2>·>>>N>outside>>S>>.>.>.>.>.>.>.>.>.>.>.>.>>(>2>)>>>s>

其中Ninside是位于探针和椭圆两者内的皮肤像素的数目;Noutside是位于探针内和椭圆以外的皮肤像素的数目;而S是探针区域。如果所述探针位于脸部区域内部,则Pin而Pout具有较大值。如果所述探针位于脸部区域以外,则Pin而Pout具有较小的值。如果所述椭圆位于脸部区域的边界上,那么Pin具有较大值又Pout具有较小值。

如果Pin<Tin(Tin是阈值),那么将所述探针以速度Vin向内移动。否则,如果Pout>Tout(Tout是阈值),则将所述探针以速度Vout向外移动。也就是说,如果在探针内部邻域中存在少数皮肤像素,那么所述探针存在于脸部区域以外,以便探针向内移动;而如果探针邻域内部和外部的皮肤像素的数目足够多,则向外移动探针。

模型变形过程包括计算所有探针的位移,并且将所述椭圆与再定位的探针的中心拟合(fit)。所述椭圆只限于具有固定方位(沿垂直主轴)。将作为结果产生的稳定的椭圆边框确定为脸部区域(操作1220)。

图10和11示出了来自于所述脸部区域检测的一些结果。在图10和11中,较小的椭圆对应于初始区域,而较大椭圆对应于检测结果。

1.1.3.眼睛边框检测

图14A是图7的眼睛边框检测部件710的框图。参见图14A,所述眼睛边框检测部件710包括模糊图像生成部件1450,其通过低通滤波生成模糊图像;图像二元化部件1460,其计算通过从原始图像中减去模糊图像而获得的图像中每一像素及其相邻像素的平均值来生成新的图像,并且使用预定阈值来二元化新的图像;眼睛候选者搜索部件1470,其寻找在图像二元化部件中二元化的图像的连接部分作为眼睛候选者;以及眼睛边框确定部件1480,其通过按照形状、大小和相对位置评估所述眼睛候选者来确定眼睛边框。

图14B是眼睛边框检测的流程图。

通过低通滤波创建模糊图像(操作1400)。将所述模糊图像从原始图像中减去(操作1410)。计算作为结果产生的图像中的每一像素及其相邻像素的平均值。使用所述平均值创建新的图像,并且使用预定阈值进行二元化(操作1420)。找到连接部分以作为眼睛候选者(操作1430)。通过按照形状、大小和相对位置评估眼睛候选者来确定眼睛边框(操作1440)。

具体来讲,依照本发明的眼睛边框检测取决于以几个比例对彩色脸部图像的红色通道中的近似眼睛形状和眼睛大小变化的检测。选择红色通道是因为眼睛虹膜、乃至在浅色眼睛(蓝色、绿色)情况下具有较小的红色成分值,而眼白和周围皮肤具有相对较大的红色成分值。实验证明:使用红色通道比使用基于灰阶图像的方法具有更佳的结果。

首先,预处理原始的R通道图像以仅仅保持脸部部分,所述脸部部分由在先前过程中检测的椭圆边界矩形限定并且缩放到固定宽度。在此步骤中,还将红色通道亮度扩展为最大范围。

第二,通过以下公式计算变化图像Vn,a(x,y),其表示每个点作为眼睛的似然性:

>>>V>>n>,>α>>>>(>x>,>y>)>>=>>1>>|>>R>>n>,>x>,>y>>>|>>>>Σ>>>r>∈>R>>>n>,>x>,>y>>>>>>[>I>>(>r>)>>->>1>>|>>P>>n>,>r>>>|>>>>Σ>>>p>∈>P>>>n>,>r>>>>I>>(>p>)>>]>>2>>*>α>.>.>.>.>>(>3>)>>>s>

其中p和r表示像素位置;I是在预处理之后的红色通道图像;Rn,x,y是以(x,y)为中心、大小(n×5)的矩形;Pn,r是以r为中心、大小(n×n/2)的椭圆;α是比例系数,n表示眼睛特征的预期大小。

使用‘n’和α的4个组合计算变化图像,以消除在脸部检测中可能的错误,并且解决眼睛形状方面的变化。图15和16示出了使用系数的以下不同组合获得的示范性的眼睛变化图像:

n=OPTIMAL_FACE_WIDTH(最佳脸部宽度)/30,α=0.6,

n=OPTIMAL_FACE_WIDTH/25,α=0.6,

n=OPTIMAL_FACE_WIDTH/30,α=1.4.以及

n=OPTIMAL_FACE_WIDTH/25,α=1.4.

第三,测试在阈偏差图像中的连接部分,以满足形状、大小和相对位置标准,以便获得最佳匹配的眼框。根据以下策略、将根据不同变化图像获得的结果合并,所述策略为:

步骤1.从最小比例开始(上文列出的第一结构);

步骤2.是否以当前比例显示眼睛候选者:

a)如果不是,以先前的比例检测候选者,将所述眼睛设置为当前候选者,并且进入步骤3;

b)如果早已发现候选者,那么比较当前比例候选者与先前的候选者。如果候选者的尺寸和位置没有显著地改变,那么以当前比例利用所述候选者来更新所述眼睛。

步骤3.采用下一个(更大的)比例并且进入步骤2。

图9的眼睛边框是检测结果。

1.1.4.眼睛虹膜检测

在红色通道图像中从眼睛边框检测虹膜。图18A是图7的虹膜检测部件715的框图。参见图18A,所述虹膜检测部件715包括高亮搜索部件1860,其通过将红色通道图像中每个眼睛边框中具有最高亮度值的像素数目与阈值相比较,来确定是否存在高亮部分;虹膜中心初始化部件1870,如果没有发现高亮部分,那么其初始化最暗像素集合的中心以作为虹膜中心,而如果存在高亮部分,那么其初始化接近高亮部分的高对比度区域的中心以作为虹膜中心;虹膜中心/半径测量部件1880,当增大初始圆圈时,其沿处于虹膜中心的初始圆圈重复地测量像素的梯度;以及虹膜确定部件1890,其将具有最大梯度的区域确定为虹膜的中心和虹膜的半径。

图18B是检测虹膜的中心和半径的流程图。将红色通道图像的眼睛边框中的具有最大亮度值的像素数目与阈值比较,以确定是否存在高亮部分(操作1800)。如果没有找到高亮部分,那么初始化最暗像素集合(mass)的中心以作为虹膜中心(操作1820)。如果高亮部分存在,那么初始化接近高亮部分的高对比度区域的中心以作为虹膜中心(操作1810)。

增大虹膜中心处的初始圆圈、并且测量沿所述圆圈的像素的梯度(操作1830)。使用邻近于初始虹膜中心的像素重复梯度测量(操作1840)。将具有最大梯度的区域选为虹膜中心,并且获得虹膜的半径(操作1850)。

将详细说明眼睛虹膜检测过程。首先近似估计虹膜中心,然后在虹膜半径检测期间精炼。

在虹膜中心估计过程中,如果在眼睛边框内部没有找到高亮部分,那么将最暗像素集合的中心初始化以作为虹膜中心;而如果高亮部分存在,那么初始化高亮部分周围的高对比度区域的中心,以作为虹膜中心。使用在先前阶段预先处理的R通道图像如下来执行虹膜中心检测。

1)使用3×3中值滤波器过滤眼睛区域以消除噪声;

2)通过将眼睛边框内部具有最大亮度值的像素数目与预定阈值进行比较,来确定是否存在高亮部分;

3)检测虹膜中心(根据在虹膜中是否存在高亮部分而使用不同的方法);

a)当在虹膜内部找到强烈的高亮部分时,使用模板匹配方法扫描眼睛边框的中心区。将具有固定半径的圆形模板移入搜索区域内部,并且在每个位置检验下文所列条件,以便检测虹膜中心,所述条件为:

i)搜索窗内部的局部最小值(dLocalMinVal)不应该太接近于搜索窗内部的局部最大值(dLocalMaxVal)(因为这样可以确定最暗像素和高亮部分两者都存在于搜索窗中);

ii)局部最小值(dLocalMinVal)应该足够暗;

iii)局部最大值(dLocalMaxVal)应该足够亮。

利用满足这些条件的所有位置,将预期的虹膜中心确定为这些位置的中心。

4)当没有找到强烈的高亮部分时:

a)将5×5最小函数应用于所述眼睛区域以消除弱的高亮部分;

b)利用以下公式卷积眼睛区域:

>>W>>(>x>,>y>,>c>)>>=>>>sin>>(>>(>>X>2>>+>>y>2>>)>>/>c>)>>>>>(>>x>2>>+>>y>2>>)>>/>c>>>.>.>.>>(>4>)>>>s>

在卷积期间,将正相权重分配给处理块的中心部分,同时将负相权重分配给其边界部分。参数c控制被分配了正权重的区域的半径。

c)与预定阈值相比最暗的点被平均,以找到虹膜中心。

接下来,通过利用环绕它的全部像素(x,y)执行以下过程来精炼在先前步骤中初始化的虹膜中心(xc,yc)。还在此过程中检测虹膜半径R。

1)对接近虹膜中心(xc,yc)的全部像素(x,y)执行以下计算:

a)对于R=MinR到R=MaxR来说:

i)计算位于具有R-1半径、以(x,y)为中心的圆圈的左右边界的像素亮度和;顶部和底部部分很可能被眼睑遮蔽,所以没有使用它们。

ii)计算位于具有半径R、以(x,y)为中心的圆圈的左右边界的像素亮度和;没有使用顶部和底部部分。

iii)计算这两个和之间的差(D(R,x,y))。

b)选择最大D(R,x,y),并且将对应的半径R记录为Rmax(x,y)。

2)在全部像素(x,y)的值当中选择最大D(Rmax(x,y),x,y),并且使对应的像素(x,y)作为虹膜中心,并且使Rmax(x,y)作为虹膜半径。图19示出了虹膜检测的一些结果。

1.1.5.脸部图像标准化

在虹膜检测之后,旋转脸部图像,使得虹膜中心之间的线绝对地水平。还利用涉及脸部尺寸和两个虹膜中心距离之间的比率的先验知识来调节脸部边框的尺寸。然后,修剪输入图像,以仅仅包含脸部区域,并且将其缩放到预定宽度。

1.1.6.眼睛轮廓检测

利用上下眼睑的两个多项式来近似表示眼睛轮廓。图20是用于眼睛轮廓检测的近似法的流程图。根据虹膜的中心和半径预先确定搜索区域(操作2000)。将搜索区域的红色通道图像中的每个水平扫描行上的像素选为左右眼睑点(操作2010),在所述搜索区域中局部最小值或者亮度突然地改变。将在剩余眼睑点中的最左边和最右边的点选为眼角(操作2020)。通过最小平方方法、利用连接眼角的线上的点来估计上眼睑曲线(操作2030)。利用所选择的眼角以及虹膜的较低点来估计下眼睑曲线(操作2040)。

将详细说明眼睛轮廓检测过程。一个眼睛轮廓模型包括用于上眼睑(x和y的立方)和下眼睑(x和y的平方)的两个多项式。在估计了虹膜的中心和半径之后,根据低亮度像素区域(眼白和皮肤之间的边缘)近似表示上眼睑。不需要对下眼睑进行另外的检测,而根据眼角和虹膜的较低点直接近似表示下眼睑。

最初,在检测上眼睑以前,利用中值滤波器过滤红色通道眼睛图像并将其高斯平滑以较低噪声等级。根据虹膜的中心和半径预先确定眼睑点的搜索区域。

第二,利用以下算法检测上眼睑点。

1)对于搜索区域内部的每个垂直位置来说:

2)如果在当前垂直位置,虹膜被皮肤覆盖(在此行的平均亮度大于阈值),那么过程前进到1;

3)将所述当前行中的像素亮度值从虹膜的左侧边缘向眼睛边框的左侧边缘扫描,以寻找其中局部最小值或者明亮度显著地增加的区域(参见图21)。这些区域对应于上眼睑左侧部分;

4)对右侧执行相同过程。也就是说,将当前行中的像素亮度值从虹膜的右侧边缘向眼睛边框的右侧边缘扫描,以寻找其中局部最小值或者明亮度显著增加的区域(参见图21)。这些区域对应于上眼睑右侧部分。

上述算法给出一组点,这些点被假设位于上眼睑上。为了排除错误地检测的点,眼睛边框的左右两半边如下进行处理。

1)通过霍夫(Hough)变换将所述点近似表示为线;

2)选择具有合理的方位并且具有最大数目的接近于它的点的线;

3)去除远离估计的线的所有点;

在剩余点之中,挑选最左边和最右边的作为眼角,使用位于连接眼角的线之上的点来估计上眼睑曲线(参见图22)。

1.1.7.眉毛检测

在前额区域中,将垂直眉毛位置近似为像素的标准化水平积分投影(H(y)下面)中的全局最小值(参见图23):

>>H>>(>y>)>>=>>>>Σ>>x>∈>Face>>(>y>)>>>>>(>gray>>(>x>,>y>)>>)>>>>Wdt>>(>y>)>>>>.>.>.>.>>(>5>)>>>s>

其中Face(y)是满足(x,y)在脸部椭圆之内的一组x;Wdt(y)是在位置y处脸部椭圆的宽度;而gray(x,y)是在(x,y)处的灰度值的亮度。

如果发现垂直眉毛位置距离眼睛很远,那么根据脸部大小和虹膜中心位置将垂直眉毛位置设定为预定值。然后,基于有关眉毛位置的经验信息确定眉毛边框(参见图24)。

然后,使用三次幂(立方)多项式近似表示眉毛。首先,沿眉毛矩形内部的每个垂直部分,将灰度值大于预定值的点收集以作为眉毛点,并且计算这些点的平均位置。利用平均位置来估计眉毛曲线(参见图25)。

1.1.8.嘴唇轮廓检测

所述嘴唇轮廓检测包括上嘴唇检测和下嘴唇检测。图26是上下嘴唇检测的流程图。

上下嘴唇被如下检测。最初,初始化嘴唇矩形(操作2600)。通过分析非肤色像素的矩(moment)来精炼最初的嘴唇边框,以使其更小(操作2610)。创建嘴唇函数图像,并且计算精炼的嘴唇边框中的每一像素属于嘴唇还是皮肤的概率(操作2620)。计算具有很大嘴唇函数值的像素的二阶中心矩,并且利用椭圆初始化嘴唇轮廓(操作2630)。通过向内和向外的力来动态地进化嘴唇轮廓(操作2640)。利用进化的轮廓点、通过近似法获得表示嘴唇轮廓的多项式(操作2650)。

向外的力是向嘴唇-皮肤边界移动轮廓点的力。向内的力包括内部成形力,其形成椭圆轮廓,并且包括内部平滑力,其通过预定系数确定,包括禁止轮廓点向边界外移动的力。

将详细说明嘴唇轮廓检测过程。在嘴唇轮廓检测中的第一步在于估计相当地精确的边界矩形。此估计步骤包括以下步骤:

1)在皮肤检测阶段期间,构造个人特定肤色直方图。

2)以所期待的鼠标位置附近为中心的矩形被设置为最初的嘴唇边界矩形。

3)在当前矩形中,具有较小个人特定肤色直方图值的像素集合的中心和二阶矩被迭代地计算,以便更加精确地精炼嘴唇框(参见图27)。

将嘴唇框细化执行若干次,例如大约六次,通常这对于相当精确的嘴唇边框计算是足够的。

接下来,生成嘴唇函数图像以测量每一像素的色彩属于嘴唇还是肤色的可能性。在(r=R/G,b=B/G)的空间中,由二维高斯概率密度函数表示两种颜色的类。在嘴唇边界矩形中具有较低个人特定皮肤直方图值的像素用于嘴唇色类计算;在皮肤检测期间标记为皮肤的像素用于肤色类估计。在计算了两个颜色类之后,利用以下公式生成嘴唇函数图像:

lip_func(x,y)=α1P1(r(x,y),b(x,y))-a2Ps(r(x,y),b(x,y))    …(6)

其中p1(r(x,y),b(x,y))是在像素位置(x,y)处的嘴唇颜色类的概率密度值;ps(r(x,y),b(x,y))是在像素位置(x,y)处肤色类的概率密度值;而α1和α2是系数。因此,lip_func(x,y)表示像素属于嘴唇颜色类的概率与像素属于肤色类的概率之间的差。

第三步包括计算具有大嘴唇函数值的像素的二阶中心矩,并且利用椭圆近似表示嘴唇轮廓。

第四步包括通过对嘴唇函数图像重复地运用所述算法来生成精确的嘴唇轮廓。可以将嘴唇轮廓初始化为闭合的多边形,其在椭圆的边界上包括多个点,所述点以相同间隔和角度进行采样(参见图28的嘴唇函数图像和初始化的嘴唇轮廓点)。在每个迭代,根据一组简单法则来移动轮廓点pi。在本发明的实施例中,通过力移动轮廓点pi的方向是vc(参见图29)。将轮廓点的移动方向Fi确定为由下面等式(7)给出的三个力的和:

>>>F>i>>=sup>>F>i>datasup>>+sup>>F>i>formsup>>+sup>>F>i>smsup>>.>.>.>.>>(>7>)>>>s>

其中

>sup>>F>i>formsup>>=>>k>form>>>>>(>>>->v>>sum> >)>>*>>v>c>>>>|>>>->v>>sum>>|>>>,>>s>其中vsum=vp+vn

>sup>>F>i>smsup>>=>>>->k>>sm>>>(>1>+>>v>p>>*>>v>n>>/>>(>|>>v>p>>|>|>>v>n>>|>)>>)>>*>sign>>(>>(>>p>>i>+>1>>>->>p>>i>->1>>>)>>*>>(sup>>>->v>>p>1sup>>)>>)>>;>>s>

Pi-1,pi和pi+1是三个顺时针方向连续的轮廓点,而所有的k*是预定正系数。ksm是根据轮廓点位置以及轮廓点移动方向而改变的系数,同时其它系数恒定。

实际上,为了允许算法与拐角匹配,稍后描述的椭圆约束条件Fism应该给予嘴唇拐角点比Fi更少的贡献。所以,ksm(i)相对于在先前迭代步骤中于椭圆的角附近发现的点更小。嘴唇轮廓的下部比上部平滑,当计算ksm(i)时应用它。

f是嘴唇函数图像中的位置(pi)处的值;T是预定阈值;Vp和Vn是从当前点Pi朝向在前和下一轮廓点的向量(参见图29);Vc是从椭圆中心朝向Pi的标准化方向;V1p是通过将Vp顺时针转π/2生成的。

概括地说,Fidata是控制轮廓扩大或者缩小以拟合在点pi处的实际数据的力,而Fiform迫使轮廓形状接近于椭圆。为了允许力Fiform作用于全局轮廓形状,根据接下来的(在前)几个点的平均获得Vn和Vp。Fism通过不许任何单个点超出边界来控制轮廓的平滑度。

在大约30次迭代之后终止上述算法。图30中示出了一个嘴唇轮廓更新过程。接下来,将多项式(对于上下嘴唇两者都是四阶)拟合为根据迭代产生的点,以便生成嘴唇轮廓曲线。

1.1.9.鼻子轮廓检测

所述鼻子轮廓检测包括鼻侧检测。图31是在鼻子轮廓检测过程中鼻侧检测的流程图。所述鼻侧检测如下执行。首先,对预定搜索区域中的边缘图像执行与具有预定形状的模板的匹配(操作3100)。在具有较大匹配值的检测到的候选者中,选择满足对称要求的一对候选者,并且确定为鼻翼位置(操作3110)。利用四次方多项式曲线来表示每个鼻侧。将此多项式曲线与检测到的鼻翼模板以及三个点拟合(操作3120),其中所述三个点依照预定系数内插在鼻翼和眼角之间。最后,利用预先确定的插值系数来定位鼻尖和鼻子下部曲线(操作3130)。

将详细地描述鼻子轮廓检测过程。很难构造可以不顾成像和照明条件来使用的通用鼻子检测技术。当然,在正面照明和良好锐度的条件下,因为明显的边缘图案出现在鼻子区域中,所以不会出现重大的问题。然而,在照片模糊、或者其是在没有方向性、类似外界照明的一些情况下,鼻子边缘区域噪声很大以至于无法识别边缘图案。在该情况下,可以利用定向边缘映射模板来检测鼻翼,所述定向边缘映射模板用于对不同类图像提供优良的稳定性。此鼻子轮廓检测算法可以根据以下步骤实现:

1)修剪鼻子区域图像(在眼睛中心之间横向地以及从眼睛的底部到鼠标边框的顶端垂直地范围内),并且将其缩放到固定分辨率。

2)对鼻子区域图像应用中值滤波器来去除噪声并且保护边缘信息。

3)利用Prewitt边缘检测器来计算边缘梯度图像;

4)将定向的鼻翼模板与鼻子区域图像匹配以便检测鼻翼。

鼻翼模板以固定标尺表示鼻翼的代表性形状(参见图32)。将拟合精确度测量为像素的边缘数值的和,所述像素位于鼻翼模板的边缘上,并且具有接近于模板切线的边缘方向。根据具有最大10%的拟合精度的位置获得鼻子候选者,并且根据以下三个标准来测试成对候选者(左右鼻翼候选者),以便确定最可能的鼻子位置(参见图33)。

首先,重叠条件:一对候选者应该具有类似高度。

第二,独立的条件:一对候选者沿X轴方向不应该过于彼此靠近。

第三,沿X轴方向对称:沿X轴方向从候选者到脸部中心之间的距离差不应该过大。

其次,将四次方多项式与图34中标记的6个点拟合,其中点1、2和3在预定位置根据检测到的模板被采样,利用预定系数将其它点内插在鼻子模板和眼睛矩形之间。

当应用于在不同照明条件下拍摄的不同质量的图像时,上述鼻翼轮廓检测方法产生了非常良好的稳定性以及精确度。图35中示出了鼻侧轮廓检测的例子。

鼻尖是两个边翼模板中心的中点。利用预定系数将较低的鼻部曲线(参见图38和39)定位在两个鼻翼之间。

1.1.10.下巴及脸颊轮廓检测

图36A是图7的下巴及脸颊轮廓检测部件745的框图。参见图36A,下巴及脸颊轮廓检测部件745包括梯度计算部件3640,其计算红色通道图像上的梯度向量场;下巴和脸颊轮廓扩大部件3650,其在由两个多项式曲线限定的脸部区域中定位最初的轮廓模板,所述两个多项式曲线在下巴点相交,并向外扩大下巴和脸颊轮廓、直到下巴和脸颊轮廓沿曲线的切线达到强边缘为止;以及下巴和脸颊轮廓确定部件3660,当下巴和脸颊轮廓已经达到曲线切线上的强边缘时,其停止扩大下巴和脸颊轮廓。

图36B是下巴及脸颊轮廓检测的流程图。所述下巴及脸颊轮廓检测过程如下执行。

首先,计算红色通道图像上的梯度向量场(操作3600)。将最初的轮廓模板定位在脸部区域中,所述脸部区域由在下巴点交叉的两个多项式曲线定义(操作3610)。沿曲线的切线向外扩大下巴和脸颊轮廓直到强边缘(操作3620)。当达到非常亮的谷值时,停止扩大下巴和脸颊轮廓(操作3630)。

将详细说明下巴及脸颊轮廓检测过程。通过在底部下巴点交叉的两个连续的四次方多项式来表示下巴和脸颊轮廓。所述两个多项式在上端具有固定的Y坐标值。将由多项式定义的曲线分为多个区段(参见图37)。所述下巴及脸颊轮廓检测过程包括以下步骤。

1)如下初始化边缘图像和下巴曲线。

a)通过以下步骤生成水平和垂直边缘图像:

i)缩放原始的红色通道图像以拟合OPTIMAL_FACE_WIDTH,对缩放的图像执行高斯平滑,并且利用中值滤波器过滤所述图像;和

ii)利用Sobel(索贝)边缘检测器检测所述边缘。

b)根据底部点、左上方点和右上方点的三个点来初始化左右曲线,以便使其对称。利用检测到的眼睛和嘴唇位置的先验知识来确定这三个点。

2)通过重复以下过程来精炼所述曲线:

a)对于每个区段i来说(从0到N,其中N是区段总数):

i)将拟合精度设定为0;

ii)对于区段i中的每个采样点(x,y)来说:如果曲线的切线和在(x,y)的图像边缘方向之间的角度小于60度,并且在(x,y)处的边缘数值不小于预定阈值,那么提高拟合精度;并且

iii)如果所述拟合精度小于另一个给定的阈值,那么沿曲线法线向量“向外”移动所述区段。否则,将所述区段“向内”稍微移动。

b)重修(refit)所述曲线直到所有区段。

在2.a.iii)中,沿曲线的法线向外扩大曲线的所有区段(参见图38的下巴拟合过程的中间阶段)。然而,当达到显著的亮度谷值时,应该停止在曲线下部向外移动所述区段,这是因为在较低的下巴区域中,边缘通常非常浅。这里,可以将以下决策规则应用于曲线的下部:

c)对于曲线下部的每个区段i来说:

i)将拟合精度设定为0;

ii)计算区段i的像素(x,y)的平均亮度(CurBrt(i));

iii)沿曲线的法线向外移动区段i,并且计算像素的平均亮度(MovedBrt(i))。

iv)如果MovedBrt(i)<CurBrt(i),那么将区段“向外”移动。

否则,将所述区段i“向内”稍微移动到阴影区中。

图39中示出了正面图像中的所有特征。上述算法是完全自动的,并且对不同的图像和各种照明条件都很稳定。

1.2侧面特征检测

图40是侧面特征检测部件650的详细框图。所述侧面特征检测部件650包括侧面区域检测部件4000、侧面曲线检测部件4020、基准点检测部件4040和耳朵轮廓检测部件4060。

所述侧面区域检测部件4000将像素归类为皮肤像素和非皮肤像素,并且选择最大肤色连接部分作为侧面区域。

所述侧面曲线检测部件4020检测正面图像中用户规定边框的脸部区域最右边边界以作为侧面曲线。

所述耳朵轮廓检测部件4060通过将曲线模板与侧面图像相匹配来初始化耳朵位置。利用轮廓跟踪算法来使初始化的耳朵模板变形,以便得到更加精确的耳朵轮廓。

图41是侧面特征检测的流程图。所述侧面特征检测过程可以包括侧面区域检测(操作4100),侧面曲线检测(操作4110),基准点检测(操作4120)和耳朵轮廓检测(操作4130)。可以基于例如从前额、鼻子、嘴唇、下巴、颈区等检测到的基准点,将检测到的侧面曲线划分为各个区段。

遍及侧面区域检测过程,在以后的步骤中检验先前步骤的结果。如果发现来自于先前步骤的中间结果是错误的,那么算法自动地返回到先前步骤,以利用大量图像信息来校正错误。

目前,侧面特征检测需要与用户进行交互。作为第一个例子,如果脸部大小不足够大,并且脸部图像背景很复杂且包括肤色对象,那么要求所述用户定义脸部边界矩形。然而,这是不寻常的实例。在几乎所有的测试图像中可以完全自动地检测脸部区域。

作为第二个例子,在基于先验统计数据设置了头顶和背后、眼点和嘴唇点的初始位置之后,可以要求用户校正所述位置。

1.2.1.脸部区域检测

所述脸部区域检测过程包括将像素归类为皮肤像素和非皮肤像素,并且选择最大肤色连接部分作为脸部区域。当存在具有相近尺寸的两个最大连接部分时,将更接近于图像中心的其中一个部分选为脸部区域。

具体来讲,按用于正面图像过程的类似方式,利用标准化r-g彩色空间和训练的肤色模型来确定像素是皮肤像素还是非皮肤像素。将最大肤色连接部分或者具有相近尺寸的两个最大肤色部分中更接近图像中心的一个选为脸部区域。

在一些情况下,鼻部区域和脸部区域可以是不连续的(参见图42)。这种有问题的情况可以通过检验相邻肤色的连接部分检测到,并且将鼻部区域和脸部区域合并。存在另外两种有问题的情况。第一个实例是:如果照明太强,那么无法获得整个鼻部区域(参见图43)。第二实例是:如果照明稍暗或者如果包括了胡子,则无法检测到整个下巴区域(参见图44)。第一实例在检测到鼻尖之后、在鼻梁跟踪过程中被识别。第二实例在检测到下巴和颈部点之后被判定。

当皮肤检测失败时,利用基于棱形(pyramid)的区域分段算法来检测脸部区域。基于棱形的区域分段算法的输入图像是在原始图像的HSV转换中的一个通道。此通道是基于根据穿过鼻梁的背景鉴别皮肤的性能而选择的。

1.2.2.侧面曲线检测

根据正面图像获得的用户规定边框中的脸部区域最右边边界被检测以作为侧面曲线。

具体来讲,当通过皮肤检测检测到脸部区域时,如下对侧面曲线检测用户规定边框内部的最右边脸部区域像素。

1)所述输入是皮肤检测的二进制结果(1指的是所述像素属于皮肤,而0指的是相反的情况),以及得到的脸部区域(连接部分);

2)所述用户手动地规定脸部边框(此步骤对于大多数的图像来说是不必要的);

3)得到侧面轮廓的粗略近似。所述算法构造“侧面函数”x=x(y),其中y沿垂直方向改变,而x对应于脸部边框内部y行中的最右边的皮肤像素。如果在此行中没有皮肤像素,那么将x(y)设定为零;

4)利用1D高斯滤波器来平滑所述侧面函数,以便消除随机噪声(参见图45的示范性的侧面函数)。

将所述图像裁剪到仅仅包括侧面函数的程度,并且缩放到固定高度以便允许更为容易地进行后续处理。

2.2.3.基准点检测

通过分析侧面函数的形状来检测侧面曲线的基准点。

1)鼻尖是侧面函数的全局最大值。在检测到鼻尖之后,在所述鼻尖之上,利用强边缘像素将鼻梁部分以线条近似表示。在原始图像的HSV转换中,利用不同的通道审查将皮肤从穿过鼻梁的背景中分离的性能。此外,当鼻梁线条太远离侧面曲线时,将认定皮肤检测失败,并且所述算法返回以便利用区域分段算法来检测脸部区域。

2)前额上方的点(“前额顶端”)是最顶端的皮肤像素。

3)利用七次方多项式来近似表示侧面函数x=x(y)的上部(从前额顶端到鼻尖)(参见图46)。执行多项式的自底向上扫描,以便找到多项式的一次导数小于固定阈值的位置。此点对应于鼻梁顶端;

4)对侧面函数的下部(鼻尖下面)执行分段线性近似法。

a)由函数的最初3个点计算线段的方向。b)计算从连续点到当前区段的距离。c)如果计算出的距离太大(大于固定阈值),那么启动新的区段并且所述过程前进到步骤a)。d)执行步骤(a)。

5)在预定区域的线段的连接点之中,得到相邻区段之间具有大角度(大约90度)的连接点。此点对应于“鼻子点下方”(参见图46)。

6)对于“鼻子点下方”下面的点来说,通过利用自适应多线拟合算法估计的线段来近似表示侧面函数。此算法的每个步骤如下。

a)由开头两个点计算新的线段方向。b)将下一个点添加到区段近似点的集合中。c)通过拟合所有点的最小二乘法来重新计算区段方向。d)计算每个点与近似区段的偏差。e)如果任一点太远离所述区段,那么所述过程前进到a)。否则,过程前进到b)。

根据自适应多线(polyline)拟合结果来检测下巴和颈部点(参见图47中标记的三个点)。如果下巴太接近于鼻尖,那么将认定皮肤检测失败,并且算法返回以便重新检测脸部区域。

7)特别是当成像条件被极大地改变时,很难可靠地找到上下嘴唇基准点。在该情况下,通过判断总体脸部大小来合理地近似表示所述基准点。下面将描述图48中的一些区段。

a)“I”是从“鼻子点下方”到颈部起点的垂直距离。

b)“a”=0.225*I。

c)“b”=0.125*I。

d)“c”=0.125*I。

在找到基准点之后,利用多项式来近似表示基准点之间的侧面曲线区段。不直接检测头部的后面和顶端以及眼睛,而是根据人类头部的合理的比率来估计。图49中示出了所有由此产生的特征。

1.2.4.耳朵轮廓检测

图50是耳朵轮廓检测的流程图。所述耳朵轮廓检测过程包括通过匹配曲线模板与侧面图像(操作5000)来初始化耳朵位置,并且通过利用轮廓跟踪算法变形初始化的耳朵模板来得到更加精确的耳朵边界(操作5020)。

图51是耳朵初始化的流程图。参见图51,耳朵初始化过程包括:确定耳朵模板的移位(translation)向量,旋转原始图像使得鼻梁顶端和下巴点之间的区段变成垂直,并且将所述区段的长度缩放为预定值(操作5100);定义耳朵搜索区域(操作5110);将脸部区域和头发区域之间的边缘与曲线模板匹配,以便根据两个曲线得到具有类似形状的相应子区段(操作5120);如果匹配区段的长度小于预定阈值,那么通过将利用边缘检测器检测到的边缘和耳朵模板匹配来检测具有类似形状的区段(操作5130);并且利用最小二乘法计算从模板区段到匹配图像点的移位向量(操作5140)。

将详细说明耳朵轮廓检测过程。可以将耳朵轮廓检测过程大致分为两个步骤。在第一步中,将曲线模板(参见图52)与色彩或者边缘信息匹配,并且将模板变形以拟合局部图像信息。

具体来讲,在耳朵位置初始化步骤中,标准化原始图像的方位和比例。选择两个标定点、即鼻梁顶端和下巴点来用于标准化。旋转所述原始图像,使得连接这两个点的区段变得绝对地垂直,而且缩放原始图像,使得两个点之间的距离具有固定值。定位先验矩形,以便在标准化的图像中定义耳朵搜索区域。图53中示出了标准化的图像、标定点和搜索区域。

为了找到成功地初始化耳朵模板位置的移位向量,使用了皮肤检测的结果。总的来说,皮肤区域边界与耳朵边界在一些部分上重合,如图54所示。基于曲线梯度信息的相似性、利用简单曲线匹配算法来将模板与皮肤区域边界匹配,以便发现这样的区段,在所述区段上,两条曲线实现最佳匹配。接下来,利用最小二乘法、用匹配区段估计移位向量。图55中示出了耳朵位置初始化的结果。将在皮肤区域边界中与模板匹配的区段标记为红色。

在一些情况下,所述皮肤区域边界未必与所述耳朵边界重合,例如,当头发太短或者照明非常强时(参见图56)。通过评估搜索区域中匹配区段的长度和变换的耳朵模板的位置,用于本发明的算法可以自动地检测这种故障情况。利用局部边缘信息初始化所述耳朵位置。

将Nevatia-Batu边缘检测器用于从灰度图像提取边缘信息。利用与在前耳朵初始化算法中所使用的相同的曲线匹配算法来测试长边缘区段,以便找到与耳朵模板最佳配合的一个边缘区段。在匹配评估的组合中使用了相关的系数。所述相关系数包括边缘区段中的匹配长度和搜索区域中基于区段的耳朵模板的位置。

实验证明,基于边缘的耳朵初始化比利用基于脸部区域算法的耳朵初始化更加稳定,但是对于在耳朵边界上找到初始区段来说,还不够精确。因此,基于边缘的算法用于补充基于脸部区域的算法,由此总体上增强了算法的稳定性。图56中示出了基于边缘的耳朵初始化的几个例子。

在第二步骤中,使变换的(translated)模板变形,以便与耳朵边界匹配。利用在初始化步骤中获得的耳朵边界点(从脸部区域边界或者Nevatia-Batu边缘的区段),根据轮廓跟踪方案来将模板与耳朵拟合。详细过程如下。

1)从早已与图像耳朵边界匹配的耳朵模板点开始,将此点记录为Contn,其中Cont是耳朵模板(以二维点列表采样的),n是所述列表中此点的下标。

2)找到满足以下约束条件的第一连续点:Contn和Contnext之间的一些模板点离与最小二乘方拟合到点集{Conti,i=n,...,next}的线条足够远;next应该至少是n+5;如果next达到模板端点,那么终止轮廓跟踪算法;

3)在某一范围中从Contn和Contnext旋转所述区段,以Contn为中心;并且将旋转的区段与局部信息匹配,以便得到具有极大匹配值的“最佳”角度;如果在所述角度范围中没有找到正确的匹配,那么终止所述算法,并通知故障;

4)在Contn之后,利用最佳角度旋转所有模板点,设置n=next,进入步骤1;

基于两种信息的组合来执行区段和图像之间的匹配评估。一个信息是作为穿过所述区段的亮度差的和评估的局部边缘强度。另一个信息是区段相似性。换言之,区段的所有像素的亮度值的和不应该与在前区段有很大的不同。如果基于两个因素的匹配评估结果是“差”,那么确定所述匹配是错误的。

对耳朵顶端和耳朵底部执行两次轮廓跟踪算法。当终止轮廓跟踪算法并通知故障时,这通常是因为头发遮蔽了耳朵而发生的,如图57所示,那么直接使用初始化结果。

对于耳朵底部来说,模板长度可以不用很长来拟合耳朵边界,因此将模板的“尾部”替换为长区段。通过沿匹配的模板测量边缘强度来得到耳朵的实际底部位置。在一些图像中,耳朵边界从底部朝向顶端延伸。此情况可以利用局部边缘信息检测到,并且由此产生的耳朵边界包括朝向顶端扩展的尾部,如图57所示。

2.头部模型拟合

获得去掉从正面和侧面照片和/或三维立体深度图中提取的脸部特征的全集。稍后将描述立体深度提取。

图59是图5的脸部模型拟合单元510的框图。脸部模型拟合单元510包括二维(2D)点转换部件5900和网格模型拟合部件5950。图60是在脸部模型拟合单元510中初始模型拟合的流程图。

最初,对应于在三维通用头部模型中定义的特征、利用三维通用头部模型的脸部特征曲线上的特征点长度比,将在图像中检测到的特征多项式转换为二维点(操作6000)。根据基于3步的基于半径函数(RBF)变形、利用检测到的图像的特征和三维通用网格模型的特征点,来变形所述三维通用网格模型(操作6050)。

基于3步RBF的变形过程如下执行。首先,将置换的模型关键点的X和Y坐标设定为对应图像特征位置,Z坐标保留在通用网格模型中,以便对正面特征执行RBF内插。第二,考虑到侧面特征的Y坐标调节侧面图像的比例,并且将侧面特征用作RBF内插的输入。最后,利用所有可用特征来执行RBF内插。

基于RBF的变形可以如此来执行,使得将通用网格的顶点转移到在深度信息恢复过程中获得的相应三维点。

将详细说明头部模型拟合过程。将检测到的脸部特征用于变形通用模型以便拟合输入图像。为此目的,将特征检测步骤中获得的脸部特征转换为对应于在通用模型中预先确定的特征的点的位移量,并且利用数据内插算法置换模型中所有顶点,以便变形通用模型。检测到的特征(曲线和点)和模型顶点之间的对应关系应该手动地预先设置。某个通用模型的对应关系是固定的,如此不需要与用户交互。

将描述建立一个特征曲线的对应关系的过程。图61中示出了模型上的“关键”顶点和沿脸部特征曲线分布的位置。示出了在通用网格模型上对应于在输入图像中检测到的脸部特征曲线的脸部特征。以相同长度比从两个曲线采样所述特征点。对所述侧面特征重复两次此过程,以便生成模型“关键”点的两组二维位移量。

根据对应图像特征点来确定“关键”顶点的三维位移量。依照直接的方法,x和y位移量根据正面特征获得,而z位移量根据侧面特征获得。然而,因为一些正面特征(较低的下巴部分、前后头部分等)缺少y位置信息,并且正面和侧面特征位置之间存在冲突,所以无法利用此方法获得似乎真实的结果。因为无法同时获得输入的画面图像,并且脸部的方位和表情至少总是稍微改变,因此数据冲突是不可避免的。即便可以同时获取正面和侧面画面,正面和侧面图像通常也不标准。换言之,难以将两个照相机的焦轴调整得彼此垂直。

为解决这些问题,使用了基于RBF的三步变形过程。

2.1.RBF数据内插

将简短地描述在本发明中使用的基于RBF的数据内插方法。如果输入两个对应的数据集{ui,i=1,...,N}R3和{ui,,i=1,...,N}R3,其分别表示变形过程前后的三维采样,那么如下确定三维空间中的形变函数f(p):

其中

p是任意的三维向量;

φi是ui的RBF,其中在φi(r)=e-r/ki的实施例中,Ki是预定的系数,其定义ui,的位移量作用的下降;c0,c1,c2,c3和λi,i=1,...,N是系数,它们是根据下面的方程式(9)确定的所有三维点:

> >>>>>(>f>>(>ver>>u>_>>i>>)>>=>ver>>u>_>>i>>′>)>>>i>=>1>,>.>.>.>N>>>>>>over>>Σ>>i>=>1>>Nover>>ver>>λ>_>>i>>=>0>>>>over>>Σ>>i>=>1>>Nover>>ver>>u>_>>>i>,>x>>>ver>>λ>_>>i>>=>0>>>>over>>Σ>>i>=>1>>Nover>>ver>>u>_>>>i>,>y>>>ver>>λ>_>>i>>=>0>>>>over>>Σ>>i>=>1>>Nover>>ver>>u>_>>>i>,>z>>>ver>>λ>_>>i>>=>0>>>>>.>.>.>.>>(>9>)>>>s>

利用此数据内插方法,可以确定形变函数f(p),条件是建立通用模型和特定个人之间的“关键”点的对应关系。据此,通过将所有通用模型顶点带入函数f(p),可以生成输入图像的理想的特定模型。

2.2三步变形(morph)过程

将详细说明所述模型拟合过程。

1)利用正面特征执行RBF内插。将置换的模型关键点的X和Y坐标设定为对应的图像特征位置,而Z坐标保留在通用模型中。在此步骤中,模型和图像之间的正面特征彼此理想地匹配。此步骤是精确的纹理映射所必须的。

2)利用侧面特征执行RBF内插。将侧面关键点的Y和Z坐标设定为它们相应的侧面图像位置,而X坐标保留与通用模型中相同。在此步骤期间,我们只确定所有模型顶点的Z轴数值。很可能在鼻尖、鼻梁顶端和嘴唇发生的正面和侧面特征之间的冲突,可以通过缩放和变换侧面特征曲线来删去,使得Y坐标拟合变形的模型的相应点。

3)最后,将所有关键点用作RBF内插输入,以确定由此产生的头部形状。在此步骤中,在步骤2的内插结果模型中,所述侧面关键点保持它们的位置。就正面关键点而言,我们根据步骤2结果来设置它们的Z坐标,并且将X和Y坐标设置为步骤1结果。如果接近正面图像是有效的,那么可以再一次执行RBF内插,以便获得利用立体信息重建的点作为输入数据。图63中示出了示范性生成的脸部模式。

3.纹理生成

由于纹理对模型的外观有着极为重要的作用,所以生成头部模型的高质量纹理比模型拟合更加重要。将正面和侧面纹理映射到模型,并且将多分辨率样条纹理组合方案用于组合不同的照片。此外,例如生成颚和耳朵背面闭合而成的下巴或者颈部区域的人造纹理。

图63是图5的纹理生成单元520的框图。所述纹理生成单元520包括输入图像补偿部件6300、正面/侧面纹理生成部件6320和组构(texturing)完成部件6340。图64是纹理生成的流程图。将参照图63和64描述纹理生成过程。

所述输入图像补偿部件6300对输入图像执行色彩校正,以便补偿不同的照明条件或者相机之间的色彩平衡变化(操作6400)。所述正面/侧面纹理生成部件6320基于三维模型顶点和在照片上投射的二维位置之间的匹配、通过将正面和侧面图像映射到公共UV平面上来生成正面和侧面纹理(操作6420)。组构完成部件6040利用多分辨率样条算法组合正面、侧面和人造纹理,以完成组构(操作6440)。将详细说明纹理生成过程。

3.1.纹理坐标映射和纹理生成

为了组合从不同观测角度获得的纹理,需要有包含模型顶点的纹理坐标的公共UV平面。此公共UV平面是二维平面,其中将所述点与三维模型位置匹配。所述平面具有由M={(u,v)|u,v∈[0,1]}表示的标准化坐标空间。

为确保在纹理坐标空间上均匀分布模型顶点,考虑到人类头部类似球体的形状,通过球形映射创建UV平面。手动地修改生成的空间,以解决UV平面上的重叠问题,特别是在耳朵区域中。一旦已经建立了对应关系,所述UV平面就专用于个体模型并且保持恒定,所以不需要进一步与用户进行交互。

为创建纹理模型,需要将脸部图像映射到UV平面上。由于模型已经与图像特征拟合,所以可以容易地获得模型顶点和画面位置之间的对应关系。因此,可以容易地将图像位置映射到UV平面上的纹理坐标。

图65和66分别是UV平面上的正面和侧面纹理图像,其中出现了重叠的纹理坐标。

3.3.纹理融合

在此步骤中,融合UV平面中的正面和侧面纹理图像以及耳朵的人造皮肤纹理,以便生成一个图像,将所述图像着色(render)为三维模型表面。对于UV平面中每个点p∈{(x,y)|x,y∈[0,1]}来说,其在融合图像中的颜色可以使用下面的公式(10)来计算:

C(p)=kf(p)Cf(p)+ks(p)Cs(p)+kart(p)Cart(p)    ....(10)

其中Cf,Cs,Cart分别是正面、侧面以及人造皮肤纹理的点p的色彩;对于每个p来说,kf,ks,kart是不同纹理的权重,并且被标准化,以便满足kf(p)+ks(p)+kart(p)=1。

纹理融合的权重利用多分辨率样条算法计算。基于高斯棱形分解,在没有模糊或者恶化优良的图像细节的情况下,在本发明中使用的众所周知的图像融合算法可以实现图像之间的平滑过渡。所述算法可被用于具有任何形状的融合边界。

3.4.人造皮肤纹理

基于侧面区域中接近区域的色彩统计量,生成用于填充下巴和颈部区域的人造纹理。清除不常见的色彩,基于剪辑的色彩统计量选择区域中的每一像素的色彩,并且通过高斯平滑去除不匀粒度(grain)。

图67中示出了最终的纹理图像。图68中示出了示范性的纹理模型。耳朵背面没有用重叠纹理进行映射是显而易见的。图68中最后两个画面分别示出了使用人工纹理的耳朵部分以及没有使用纹理的耳朵部分

4.利用立体图像对的三维重构

在大多数情况下,当只利用一个正面图像或者增加的侧面图像时,三维重构的结果是合理的。然而,当待重建的输入脸部图像非典型地出现时,即当主观事物极大地不同于通用头部模型时,算法无法正常地运行。

在这种情况下,为了进一步地精炼头部模型,将基于立体分析的模块并入该系统。可以利用专业化立体重构算法分析以稍微不同的视角度抓取的两个或更多脸部图像,以为头部的可视部分生成更加精确的三维信息。图69中示出了为此用途抓取的示范性的立体图像对。

图70是图5的深度信息生成单元540的框图。所述深度信息生成单元540包括特征点检测部件7000、差异获得部件7020以及差异到深度信息转换部件7040。图71是根据正面以及接近正面图像生成深度信息的流程图。将参照图70以及71描述深度信息生成过程。

所述特征点检测部件7000确定正面图像中的图像特征点(操作7100),并且对特征点执行基于模型的Lucas-Kanade跟踪,以便在接近正面图像中找到相应点(操作7110)。

所述差异获得部件7020利用匹配对应关系、通过数据内插来获得密度差异映射(操作7120)。最后,差异到深度信息转换部件7040将差异映射转换为深度信息(操作7130)。

基于最大和最小差异值之间的差值实现从差异映射到深度信息的转换。差值除以头部宽度并且乘以预定常量以便获得系数。通过将所述系数乘以通过从测量的差异值中减掉最小差异值所获得的值,以获得给定像素的深度值。将详细说明这些过程。

4.1根据立体图像对的差异估计

将描述通过特征跟踪的立体匹配。三维对象重构的基本概念是“立体匹配”—在整个立体图像中发现“相同”点的过程(这里“相同”指的是这些二维投影对应于唯一的三维点)。在立体匹配之后,可以恢复三维位置。

尽管基础概念很简单,但是立体匹配是非常复杂的工作。当对明显不同的立体图像执行立体匹配时,将出现许多问题。此外,因为横穿立体图像的所有可能的对应关系必须计算以完成匹配过程,所以立体匹配引起了计算上的复杂性。

然而,根据本发明,利用以下思想在脸部建模过程中可以获得符合需要的匹配结果。由于立体对的视角没有显著地不同(正面和接近正面),所以可以将立体匹配当做立体图像之间的目标跟踪过程。据此,可以使用特征跟踪算法。

大多数的特征跟踪算法对从第一图像中挑选出来的一组独立的点起作用。其目标在于在连续图像中跟踪这些点的位置。在该情况下,跟踪和匹配是同一过程。与全面逐点的极面(epipolar)匹配相比较,特征跟踪可以导致额外的失配,但是不需要校正阶段。可以独立地处理所有点以便构造所有极面几何。因此,此特征跟踪可以当利用非校准照相机时使用。为此,在实施例中执行利用特征跟踪的立体匹配。将描述使用的跟踪算法。

当假定A(x,y)和B(x,y)是两个二维灰度级图像时,考虑第一图像中的像点A(px,py)。特征跟踪的目标在于从第二图像中找到位置B(px+vx,py+vy),使得A(px,py)和B(px+dx,py+dy)相似。向量v=[vx vy]是图像速率,并且亦称在点[px,py]的光流。将图像速率v定义为这样一个向量,其使点[px,py]的附近(2ωx+1)×(2ωy+1)中的余项函数ε最小:

>>ϵ>>(>v>)>>=>ϵ>>(>>v>x>>,>>v>y>>)>>=over>>Σ>>x>=>>p>x>>->>ω>x>>>>>p>x>>+>>ω>x>>over>over>>Σ>>y>=>>p>y>>->>ω>y>>>>>>p>y>>+>>ω>y>>over>>>>(>A>>(>x>,>y>)>>->B>>(>x>+>>v>x>>,>y>+>>v>y>>)>>)>>2>>.>.>.>.>>(>11>)>>>s>

利用以下标准Lucas-Kanade公式可以得到用于最小化上述余项函数的记录为Vopt的速率,所述公式为:

vopt=G-1b ....(12)

其中

>>G>≡over>>Σ>>x>=>>p>x>>->>ω>x>>>>>p>x>>+>>ω>x>>over>over>>Σ>>y>=>>p>y>>->>ω>y>>>>>p>y>>+>>ω>y>>over> >>>>>I>x>>2>>>>>I>x>>>I>y>>>>>>>I>x>>>I>y>>>>>>I>y>>2>>>>>>,>b>≡over>>Σ>>x>=>>p>x>>->>ω>x>>>>>p>x>>+>>ω>x>>>over>over>>Σ>>y>=>>p>y>>->>ω>y>>>>>p>y>>+>>ω>y>>over> >>>δI>·>>I>x>>>>>>δI>·>>I>y>>>>>>.>.>.>.>>(>13>)>>>s>

>>>I>x>>>(>x>,>y>)>>=>>>∂>A>>(>x>,>y>)>>>>∂>x>>>=>>>A>>(>x>+>1>,>y>)>>->A>>(>x>->1>,>y>)>>>2>>.>.>.>.>>(>14>)>>>s>

>>>I>y>>>(>x>,>y>)>>=>>>∂>A>>(>x>,>y>)>>>>∂>y>>>=>>>A>>(>x>,>y>+>1>)>>->A>>(>x>,>y>->1>)>>>2>>.>.>.>.>>(>15>)>>>s>

δ|(x,y)≡A(x,y)-B(x,y) ....(16)

在三维重构之后,利用上述模型拟合算法、将通用模型与所述图像拟合。

如上所述,在根据本发明的基于图像的超现实主义三维脸部建模的设备和方法中,利用诸如数字照相机的相对廉价的设备获得的数据可以依照自动方式进行处理,并且甚至可以根据不完善的输入数据获得令人满意的效果。换言之,根据本发明,可以依照自动的方式提取脸部特征,并且使用稳定的“人类质量”脸部分析算法。

虽然已经参考本发明的示范性实施例详细地示出并且描述了本发明,但是本领域普通技术人员应该理解的是,在不脱离本发明的精神和范围的情况下,可以对其做出在形式上以及细节上的各种变化,本发明的精神和范围如随后的权利要求书定义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号