具体实施方式
在对本发明的实施例进行描述之前,以下讨论权利要求的特征与本发明实施例中公开的特定元素之间的对应关系。此描述是用来确保在本说明书中描述了支持所请求保护的发明的实施例。因此,即使在以下实施例中的一个元素未被描述为与本发明的某一特征有关,这也不一定意味着该元素与权利要求中的该特征无关。相反,即使一个元素在此被描述为与权利要求的某一特征有关,这也不一定意味着该元素与权利要求的其他特征无关。
而且,此描述不应被理解为进行如下限制:实施例中公开的本发明的所有方面都在权利要求书中进行了描述。即,该描述并不否认本发明的如下方面的存在,所述方面在实施例中进行了描述,但未在本申请中作为要求保护的发明,即并不否认本发明的如下方面的存在,所述方面将来可能由分案申请要求保护,或者通过修改来另外要求保护。
本发明一个实施例的用于从显示三维物体的二维图像生成该物体的三维模型的图像处理装置(例如图2的图像处理装置)包括:用于从图像生成显示在该图像中的物体的三维模型的三维模型生成单元(例如图5的面部模型适应器(fitter)261),以及用于在作为深度方向的Z方向上扩展三维模型生成单元所生成的三维模型的侧面区域的扩展单元(例如图25的扩展器(extender)264)。
图像处理装置还包括用于使预先准备的头发模型适配于图像的适配单元(mapping unit)(例如图25的适配单元271),用于从图像中检测没有头发的非头发部分的非头发部分检测单元(例如图25的非头发部分检测器272),用于修改在Z方向上表示适配于图像的头发模型中与非头发部分适配的区域的位置的Z值的Z值修改单元(例如图25的Z值修改器273),以及用于将经Z值修改单元修改了Z值的头发模型与面部模型合成起来的合成单元(例如图25的合成器254)。
图像处理装置还包括滤波器(例如图25的滤波器274),用于对被Z值修改单元修改了Z值的头发模型的Z值进行低通滤波。
图像处理装置包括第一适应单元(fitting unit)(例如执行图13的步骤S202的图11的眼睛特征点检测器202),用于使面部预定区域的模板的位置和尺寸适应于显示在图像中的面部;以及第二适应单元(例如执行图13的步骤S203的图11的眼睛特征点检测器202),用于通过在预定区域的形状范围内,改变位置和尺寸被适应于显示在图像中的面部的模板的形状,使模板形状适应于显示在图像中的面部,其中基于至少一个参数来修改限定模板形状的多个参数,所述至少一个参数的数目小于所述多个参数的数目,并且所述三维模型生成单元基于从其位置、尺寸和形状被适应于显示在图像中的面部的模板中获得的面部特征点,生成显示在图像中的面部的面部模型。
本发明一个实施例的从显示三维物体的二维图像生成该物体的三维模型的图像处理方法包括以下步骤:从图像生成显示在该图像中的物体的三维模型(例如在图47的步骤S251中);以及在作为深度方向的Z方向上扩展在三维模型生成步骤中生成的三维模型的侧面区域(例如在图47的步骤S252中)。
本发明一个实施例的用于使计算机从显示三维物体的二维图像生成该物体的三维模型的计算机程序包括用于执行以下步骤的程序代码:从图像生成显示在该图像中的物体的三维模型(例如在图47的步骤S251中);以及在作为深度方向的Z方向上扩展在三维模型生成步骤中生成的三维模型的侧面区域(例如在图47的步骤S252中)。
本发明一个实施例的用于从显示面部的二维图像生成作为三维模型的面部模型的图像处理装置(例如图2的图像处理装置)包括:用于从图像生成作为显示在该图像中的面部的三维模型的面部模型的三维模型生成单元(例如图25的面部模型适应器261);用于使预先准备的头发模型适配于该图像的适配单元(例如图25的适配单元271);用于从图像中检测不具有头发的非头发部分的非头发部分检测单元(例如图25的非头发部分检测器272);用于修改在作为深度方向的Z方向上表示适配于该图像的头发模型中适配于非头发部分的区域的位置的Z值的Z值修改单元(例如图25的Z值修改器273);以及用于将经Z值修改装置修改了Z值的头发模型与面部模型合成起来的合成单元(例如图25的合成器254)。
图像处理装置包括滤波器(例如图25的滤波器274),用于对经Z值修改单元修改了Z值的头发模型的Z值进行低通滤波。
本发明的从显示面部的二维图像生成作为三维模型的面部模型的图像处理方法包括以下步骤:从图像生成作为显示在该图像中的面部的三维模型的面部模型(例如在图47的步骤S251中);使预先准备的头发模型适配于该图像(例如在图48的步骤S272中);从图像中检测不具有头发的非头发部分(例如在图48的步骤S273中);修改在作为深度方向的Z方向上表示适配于该图像的头发模型中适配于非头发部分的区域的位置的Z值(例如在图48的步骤S274中);以及将在Z值修改步骤中修改了Z值的头发模型与面部模型合成起来(例如在图48的步骤S276中)。
本发明一个实施例的使计算机从显示面部的二维图像生成作为三维模型的面部模型的计算机程序包括用于执行以下步骤的程序代码:从图像生成作为显示在该图像中的面部的三维模型的面部模型(例如在图47的步骤S251中);使预先准备的头发模型适配于该图像(例如在图48的步骤S272中);从图像中检测不具有头发的非头发部分(例如在图48的步骤S273中);修改在作为深度方向的Z方向上表示适配于该图像的头发模型中适配于非头发部分的区域的位置的Z值(例如在图48的步骤S274中);以及将在Z值修改步骤中修改了Z值的头发模型与面部模型合成起来(例如在图48的步骤S276中)。
本发明一个实施例的用于从显示面部的二维图像中确定三维面部的特征点的图像处理装置(例如图2的图像处理装置)包括:用于使面部预定区域的模板的位置和尺寸适应于显示在图像中的面部的第一适应单元(例如执行图13的步骤S202的图11的眼睛特征点检测器202),以及第二适应单元(例如执行图13的步骤S203的图11的眼睛特征点检测器202),其用于通过在预定区域的形状范围内改变位置和尺寸已适应于显示在该图像中的面部的模板的形状,使模板形状适应于显示在该图像中的面部,并从位置、尺寸和形状已适应于显示在该图像中的面部的模板中确定面部预定区域的特征点,其中基于至少一个参数来修改限定模板形状的多个参数,所述至少一个参数的数目小于所述多个参数的数目。
本发明一个实施例的从显示面部的二维图像确定三维面部的特征点的图像处理方法包括:使面部预定区域的模板的位置和尺寸适应于显示在该图像中的面部的第一适应步骤(例如在图13的步骤S202中),以及第二适应步骤,通过在预定区域的形状范围内改变位置和尺寸已适应于显示在该图像中的面部的模板的形状,使模板形状适应于显示在该图像中的面部,并从位置、尺寸和形状已适应于显示在该图像中的面部的模板中确定面部预定区域的特征点,其中基于至少一个参数来修改限定模板形状的多个参数,所述至少一个参数的数目小于所述多个参数的数目(例如在图13的步骤S203中)。
本发明一个实施例的用于使计算机从显示面部的二维图像确定三维面部的特征点的计算机程序包括用于执行以下步骤的程序代码:使面部预定区域的模板的位置和尺寸适应于显示在该图像中的面部的第一适应步骤(例如在图13的步骤S202中),以及第二适应步骤,通过在预定区域的形状范围内改变位置和尺寸已适应于显示在该图像中的面部的模板的形状,使模板形状适应于显示在该图像中的面部,并从位置、尺寸和形状已适应于显示在该图像中的面部的模板中确定面部预定区域的特征点,其中基于至少一个参数来修改限定模板形状的多个参数,所述至少一个参数的数目小于所述多个参数的数目(例如在图13的步骤S203中)。
下面参照附图描述本发明的实施例。
图1示出了体现本发明一个实施例的图像处理装置的计算机的硬件结构。
计算机包括中央处理单元(CPU)102。输入和输出接口110经由总线101连接到CPU 102。当用户操作输入单元107时,CPU 102经由输入和输出接口110接收指令,所述输入单元107包括键盘、鼠标、麦克风等。作为响应,CPU 102执行存储在只读存储器(ROM)中的程序。而且,CPU 102向随机访问存储器(RAM)104加载以下几种程序之一以执行该程序:存储在硬盘105中的程序,从卫星或经由网络发送来、通过通信单元108接收并安装在硬盘105中的程序,以及从装载在驱动器109中的可移动记录介质111读取并安装在硬盘105上的程序。CPU 102根据后面将要讨论的流程图和后面将要讨论的框图结构执行处理。然后,CPU 102将其处理结果经由输入和输出接口110从输出单元106输出,将处理结果从通信单元108发送出去,或者将处理结果存储到硬盘105上,所述输出单元106包括液晶显示器(LCD)和扬声器。
要由CPU 102执行的程序被预先记录在作为计算机中的内建记录介质的硬盘105和ROM 103之一上。
或者,程序可以临时或永久地存储在可移动记录介质111中,所述可移动记录介质111例如是软盘、光盘只读存储器(CD-ROM)、磁光(MO)盘、数字多功能盘(DVD)、磁盘和半导体存储器中的一种。可移动记录介质111被作为所谓的打包软件而提供。
如上所述,程序从可移动记录介质111安装到计算机上。或者,程序可以以无线方式,从下载站点经由用于数字卫星广播的人造卫星发送到计算机,或者以有线方式,从下载站点经由诸如因特网之类的网络发送到计算机。计算机利用通信单元108接收这种传入程序,然后将该程序安装在内建硬盘105上,所述通信单元108包括网络接口卡(NIC),以及符合IEEE(电气电子工程师学会)1394或USB(通用串行总线)的接口中的一种。
根据图1的实施例,计算机(CPU 102)执行安装在硬盘105上的应用程序,从而执行建模处理和动画处理。在建模处理中,从显示人的面部的二维(2D)图像生成面部的三维(3D)模型,作为3D模型对象。在动画处理中,从3D模型生成其面部区域移动的计算机图形(CG)图像。
图2示出了根据本发明一个实施例的图像处理装置。该图像处理装置是通过执行程序的图1的计算机实现的。
存储单元131被提供了具有被拍摄者的面部图像的2D图像(图像数据)。与图1的RAM 104相对应的存储单元131临时存储单帧带有人的面部的图像(在下文中也称为面部图像)。
以下图像之一经由通信单元108存储到硬盘105上:通过数字(静态)照相机拍摄的图像,以及通过对照片进行扫描的扫描仪提供的图像,然后该图像被提供到存储单元131。
预处理器132读取存储在存储单元131中的单帧面部图像,并对所读取的面部图像执行预处理。然后,预处理器132将作为预处理的结果而获得的单帧图像(在下文中在适当时也称为规范化(normalized)面部图像)提供到规范化面部图像存储器133。
与图1的RAM 104相对应的规范化面部图像存储器133临时存储从预处理器132提供的单帧规范化面部图像的数据。
标准特征点抽取器134从存储在规范化面部图像存储器133中的规范化面部图像中抽取(检测)特征点,并确定规范化面部图像中所拍摄的眼睛区域和嘴部区域。标准特征点抽取器134将特征点、眼睛区域和嘴部区域的信息提供到详细特征点抽取器135。
基于从标准特征点抽取器134提供的特征点、眼睛区域和嘴部区域的信息,详细特征点抽取器135从存储在规范化面部图像存储器133中的规范化面部图像中抽取(检测)特征点,并将抽取出的特征点提供到面部模型生成器136。
标准特征点抽取器134从规范化面部图像中抽取的特征点是通过前面描述过的AAM抽取的一般的特征点,并且如果规范化面部图像中所拍摄的眼睛、嘴和面部外形的近似位置被一般地识别出就足够了。不要求特征点具有严格的高准确度和大量的单元。相反,详细特征点抽取器135从规范化面部图像中抽取的特征点被用来生成后面将要描述的面部的计算机图形(CG)动画,其所具有的准确度和数量高于标准特征点抽取器134所抽取的特征点。
为了在由标准特征点抽取器134抽取的特征点和由详细特征点抽取器135抽取的特征点之间进行区分,将标准特征点抽取器134抽取的特征点称为标准特征点,而将详细特征点抽取器135抽取的特征点称为详细特征点。
基于存储在规范化面部图像存储器133中的单帧规范化面部图像和从详细特征点抽取器135提供的特征点,面部模型生成器136生成面部模型,作为规范化面部图像中所拍摄的面部的3D模型,并将所生成的面部模型提供到面部模型存储器137。
与图1的RAM 104相对应的面部模型存储器137临时存储从面部模型生成器136提供的面部模型的数据。
基于存储在面部模型存储器137中的面部模型,动画处理器138生成其面部区域响应于操作单元139的操作而移动的CG动画的数据,并将该CG动画提供到显示器140。
与图1的输入单元107相对应的操作单元139是由用户控制的,其将响应于用户操作的操作信号提供到动画处理器138。
与图1的输出单元106相对应的显示器140显示动画处理器138所提供的CG动画。
下面参照图3的流程图来描述图2的图像处理装置的操作。
存储单元131预先存储被正面拍摄的人的单帧面部图像。在步骤S101中,预处理器132读取存储在存储单元131中的单帧面部图像,并对其进行预处理。预处理器132将作为预处理的结果而获得的单帧规范化面部图像提供给规范化面部图像存储器133以进行存储,并且处理从步骤S102进行到步骤S103。
在步骤S103中,标准特征点抽取器134使用AAM技术,从存储在规范化面部图像存储器133中的规范化面部图像中抽取标准特征点,然后确定眼睛区域和嘴部区域。标准特征点抽取器134将特征点、眼睛区域和嘴部区域的信息提供到详细特征点抽取器135。处理进行到步骤S104。
在步骤S104中,详细特征点抽取器135参照从标准特征点抽取器134提供的特征点、眼睛区域和嘴部区域的信息,以及存储在规范化面部图像存储器133中的规范化面部图像,并抽取规范化面部图像的特定区域的特征点,即规范化面部图像中所拍摄的面部的眼睛、嘴和下颏的特征点。然后,抽取出的特征点被提供到面部模型生成器136。
处理从步骤S104进行到步骤S105。面部模型生成器136基于存储在规范化面部图像存储器133中的单帧规范化面部图像和从详细特征点抽取器135提供的特征点,生成规范化面部图像中所拍摄的面部的面部模型。处理进行到步骤S106。在步骤S106中,面部模型生成器136生成作为规范化面部图像中所拍摄的人的头发的3D模型的头发模型,并合成在步骤S105中所生成的面部模型。处理进行到步骤S107。
在步骤S107中,面部模型生成器136基于从详细特征点抽取器135提供的详细特征点,在已在步骤S106中合成了头发模型的面部模型中,嵌入(合成)作为眼睛(眼球)的3D模型的眼睛模型和作为(嘴里的)牙齿的3D模型的牙齿模型。所产生的面部模型被提供给面部模型存储器137以进行存储,并且处理进行到步骤S108。
在步骤S108中,动画处理器138基于存储在面部模型存储器137中的面部模型,生成其面部区域响应于操作单元139的操作而移动的CG动画的数据,并将所生成的数据提供到显示器140。从而,显示器140显示在存储单元131中存储的面部图像中所显示的、并且响应于操作单元139的操作而移动的面部的CG动画。
存储在面部模型存储器137中的面部模型可被上载到因特网上的服务器中,或被发送到另一装置。存储在面部模型存储器137中的面部模型还可经由驱动器109被存储到可移动记录介质111上,以分发到第三方。
下面参照图4的流程图描述图3的步骤S102中预处理器132所执行的预处理。
在步骤S121中,预处理器132在必要时将存储在存储单元131中的一帧面部图像的尺寸缩小,并进行到步骤S122。如果存储在存储单元131中的面部图像是由商业上可得到的数码相机拍摄的图像,则后续处理的工作量变大。为了减少工作量,通过低通滤波将面部图像减小到预定尺寸。在低通滤波中,缩减了像素。
如果存储在存储单元131中的面部图像等于或小于预定尺寸,则跳过步骤S121中的处理。
现在,存储在存储单元131中的面部图像具有诸如灰色背景之类的单色背景,以有利于将被拍摄者(面部)的部分与其余部分区分开。
图5示出了存储在存储单元131中并要被预处理器132预处理的面部图像的示例。
在步骤S122中,预处理器132估计在步骤S121中被缩小到预定尺寸的面部图像中的包含被拍摄者的面部部分的矩形区域的面部范围,然后估计面部图像中的覆盖被拍摄者的颈部和肩部的衣物与未被衣物覆盖的颈部和面部的露出部分之间的边界。在下文中,将该边界简称为衣物边缘。
下面参照图6描述估计面部范围和衣物边缘的方法。
图6示出了图5的面部图像在步骤S121中被缩小到的面部图像。
如果面部图像具有作为像素值的红绿蓝(RGB)三个值,则预处理器132基于RGB值,从面部图像中检测人与背景之间的边界(在下文中适当时称为人物边缘)。预处理器132在从面部图像左侧向内的方向,以及从图像右侧向内的方向上,检测面部图像每一行的边缘像素。更具体而言,预处理器132从面部图像中确定感兴趣的行中的感兴趣的像素,并计算该感兴趣像素的RGB值和位于与该感兴趣像素相邻且比该感兴趣像素更靠内的位置的像素的RGB值之间的差的平方和。在下文中将该差的平方和也称为RGB平方误差。通过在从面部图像左边缘向内的方向,以及从面部图像右边缘向内的方向上,将RGB平方误差与固定阈值(小阈值)相比较,检测边缘像素。现在,该边缘像素是候选的人物边缘像素。
预处理器132将在向面部图像内部方向上检测到的所具有的RGB平方误差大于固定阈值的像素检测为边缘像素,并将边缘像素设定为候选人物边缘。边缘像素可能是人物边缘,但也可能是存在于背景中的某个其他物体的边缘。
在检测到第一个候选人物边缘之后,预处理器132估计面部图像的候选人物边缘之外的区域(水平排列的像素)是背景,并确定表示该背景的RGB值(在下文中适当时称为背景RGB值)。背景RGB可以是以下值之一:背景的像素的RGB值的平均值,以及背景中任意像素的RGB值。
然后,预处理器132在从候选人物边缘向内的方向上进一步连续检测边缘像素。在首次检测到的候选人物边缘内侧的像素中,要与RGB平方误差比较的阈值是可变值。例如,越进入面部图像内侧,该阈值就变得越大。
当检测到新的边缘像素时,换言之,当给定像素的RGB平方误差大于可变阈值时,预处理器132确定表示存在于当前候选人物边缘与新的边缘像素之间的像素的像素值的RGB值。在下文中将所确定的RGB值称为外典型RGB值(outer representative RGB value)。外典型RGB值可以是存在于当前候选人物边缘与新边缘像素之间的像素的RGB值的平均值,或者是存在于当前候选人物边缘与新边缘像素之间的像素中任意一个(例如位于面部图像之外的新边缘像素中的一个)的RGB值。
预处理器132还确定面部图像在新边缘像素内侧的像素的RGB值(在下文中称为内典型RGB值(inner representative RGB value))。内典型RGB值可以是面部图像中新边缘像素的最内侧像素的RGB值。
预处理器132确定内典型RGB值的背景相似度和外典型RGB值的背景相似度。背景相似度在这里指与背景之间的相似程度。内典型RGB值的背景相似度可以是内典型RGB值与背景像素RGB值的RGB值之间的差的平方和。类似地,外典型RGB值的背景相似度可以是外典型RGB值与背景像素RGB值的RGB值之间的差的平方和。在此情况下,背景相似度越小,与背景之间的相似度越高。
在确定了内典型RGB值的背景相似度和外典型RGB值的背景相似度之后,预处理器132确定内典型RGB值和外典型RGB值哪一个与背景RGB值的相似度更高。
如果外典型RGB值与背景RGB值的相似度比内典型RGB值的高,则预处理器132确定出从当前候选人物边缘延伸到新边缘像素的区域是背景,并基于这一确定,将候选人物边缘更新为新边缘像素。预处理器132继续检测边缘像素。
如果内典型RGB值与背景RGB值的相似度比外典型RGB值的高,则预处理器132继续检测边缘像素。当边缘像素检测已从面部图像的左侧和右侧之一开始执行到了另一侧时,预处理器132将当前作为候选人物边缘的像素设定为人物边缘。
如图6所示,图5的面部图像的人物边缘被确定。
在确定了人物边缘之后,预处理器132从上到下扫描面部图像,以观测人物边缘。从而,预处理器132估计面部范围和衣物边缘。
当如图6所示,从头顶向下观察面部图像时,人物边缘所包围的区域的宽度变宽,并在带箭头的虚线A所示的接近鬓角的水平线处达到峰值。然后,人物边缘所包围的区域朝着颈部变窄,从颈部向肩部再次变宽。
当从上到下扫描面部图像以观察人物边缘时,显示在面部图像中的人物面部存在于从作为首个检测到的人物边缘的像素行到人物边缘第二次开始变宽的像素行的垂直范围(由图6的带箭头的实线B表示),以及首个检测到的具有从面部图像的左侧到右侧的峰值宽度的人物边缘处的水平范围(由图6的带箭头的虚线A表示)当中。人的肩部显示在人物边缘所包围的区域第二次开始变宽的像素行处。
预处理器132从上到下扫描面部图像以观测人物边缘。预处理器132测量从人物边缘的首个检测到的像素到人物边缘所包围的区域第二次开始变宽的像素行的垂直长度(由图6的带箭头的实线B表示)。预处理器132还测量首个检测到的具有从人物边缘的左侧到右侧的最大宽度的行的水平长度(由图6的带箭头的虚线A表示)。从而,预处理器132确定测得的垂直长度和水平长度所限定的矩形区域。预处理器132估计矩形区域作为包含面部图像中被拍摄者面部部分的矩形区域的面部范围,所述矩形区域是通过用所产生的矩形的区域乘以预定倍数,或者将所产生的矩形的垂直侧和水平侧之一加宽预定的尺寸而获得的。
预处理器132将人物边缘所包围的区域的宽度第二次开始变宽处的像素行估计为衣物边缘。
后续步骤是基于面部位于衣物边缘上方的前提来执行的。
返回图4,在如上所述的步骤S122中估计了面部范围和衣物边缘之后,处理进行到步骤S123。预处理器132将面部范围中的面部图像二值化,并在所产生的二值图像上执行显示在面部范围中的面部的眼睛和嘴的模板匹配。
基于面部范围内的面部图像的色调和色度,预处理器132通过将面部范围中的肉色区域中的像素值例如设定为1,并将其他颜色区域中的像素值例如设定为0,来生成二值图像。
图7示出了从图6的面部图像得到的二值图像。在图7的二值图像中,白色部分表示具有像素值1的肉色像素,而黑色部分表示具有像素值0的其他颜色部分。面部的大部分区域具有表示肉色像素的像素值1,但黑眼睛和红嘴唇具有像素值0。
在生成二值图像之后,预处理器132在二值图像上执行显示在面部范围中的面部的眼睛和嘴的模板匹配。
预处理器132保存有方形眼睛和嘴模板,其包含眼睛矩形区域和嘴矩形区域。如图7所示,眼睛和嘴模板包含排成方形的像素。眼睛区域和嘴区域中的像素值是0,而其余区域的像素值是1。如图7所示,预处理器132执行模板匹配处理。在模板匹配处理中,预处理器132将眼睛和嘴模板置于面部范围上,并计算眼睛和嘴模板的像素与面部范围的相应像素之间的像素值差的平方和。此计算是利用眼睛和嘴模板相对于面部范围的位置和尺寸来执行的。
预处理器132检测眼睛和嘴模板最紧密地匹配面部范围的位置和尺寸,换言之,产生最小平方和的眼睛和嘴模板的位置和尺寸。在使用眼睛和嘴模板进行的模板匹配处理中,眼睛和嘴模板的尺寸可以在水平方向和垂直方向上改变长度,其中一个方向独立于另一个方向,或者可以在保持与原始方形的相似性的情况下改变。为了简化处理,这里在保持与原始方形的相似性的情况下改变眼睛和嘴模板的尺寸。
其位置和尺寸最紧密地适应面部范围的眼睛和嘴模板被称为匹配的眼睛和嘴模板。
眼睛和嘴模板包含需要被考虑为面部中心的信息(在下文中称为中心信息)。需要被考虑为面部中心的信息可以是眼睛和嘴模板的方形的重心。
返回图4,在步骤S123中获取了眼睛和嘴模板之后,预处理器132进行到步骤S124。预处理器132基于匹配的眼睛和嘴模板来缩小(或扩大)(在步骤S122中减小了的)面部图像。处理进行到步骤S125。
预处理器132基于匹配的眼睛和嘴模板的尺寸,估计显示在面部图像中的面部的尺寸。预处理器132减小面部图像,以使得面部尺寸落在针对适于生成3D模型和CG动画的尺寸的预定范围内。
在步骤S125中,预处理器132从在步骤S124中减小了的面部图像中抽取以面部的中心(重心)为中心的方形区域,例如512像素(水平方向)和512像素(垂直方向)的方形区域。面部的中心位置从包含在匹配的眼睛和嘴模板中的中心信息中被识别出。
为了预处理器132在步骤S125中从在步骤124中被减小之后的面部图像中抽取512像素(水平方向)和512像素(垂直方向)的方形区域,需要在步骤S124中减小面部图像,以使得适应到该方形中的合适尺寸是512像素×512像素。
在步骤S125中从面部图像抽取出的图像(也称为面部图像)中所拍摄的面部具有合适的尺寸。在获得这种面部图像之后,处理从步骤S125进行到步骤S126。预处理器132对在步骤S125中获得的面部图像执行色彩校正处理,并且处理进行到步骤S127。
如果面部图像的背景是单色的灰色,则预处理器132从面部图像中对在步骤S122中获得的人物边缘之外的区域进行采样,换言之,对作为形成背景的每个像素的像素值的RGB值进行采样。预处理器132为红、绿和蓝中的每一个确定线性函数,其对采样RGB值相对于预先准备的灰色RGB值的偏差与面部图像背景的像素的RGB值之间的关系进行近似。基于所得到的线性函数,预处理器132对在步骤S125中获得的整个图像执行色彩校正处理。
在步骤S127中,预处理器132校正色彩被校正的图像的亮度值(亮度水平)。
更具体而言,预处理器132从整个色彩校正图像中检测最小亮度值和最大亮度值。例如,如果亮度值用8比特表示,则预处理器132对色彩被校正图像的所有像素值执行线性变换处理,以使得色彩被校正图像的最小亮度值是0,而最大亮度值是255(=28-1)。从而,预处理器132校正色彩被校正图像的亮度值。
处理从步骤S127进行到步骤S128。预处理器132向规范化面部图像存储器133(见图2)提供亮度值被校正的图像作为规范化面部图像来存储,并结束预处理。预处理器132将从眼睛和嘴模板中获得的关于人物边缘、衣物边缘和面部中心的信息适当地包括到规范化面部图像当中,然后将该信息提供到规范化面部图像存储器133来存储。
图8示出了通过对图5的面部图像进行预处理而获得的规范化面部图像。
如果如上所述地在步骤S125中抽取了水平512像素和垂直512像素的方形区域,则规范化面部图像成为512像素乘512像素的图像。
当规范化面部图像存储器133存储规范化面部图像时,如前面参照图3的步骤S103所述,标准特征点抽取器134使用AAM技术从存储在规范化面部图像存储器133中的规范化面部图像中抽取标准特征点。标准特征点抽取器134还从标准特征点中确定显示在规范化面部图像中的眼睛和嘴的眼睛区域和嘴区域。标准特征点抽取器134向详细特征点抽取器135提供标准特征点以及眼睛区域和嘴区域的信息。
图9示出了由标准特征点抽取器134从图8的规范化面部图像中获得的标准特征点、眼睛区域和嘴区域。图10示出了从另一幅规范化面部图像中获得的标准特征点、眼睛区域和嘴区域。
根据AAM技术,获得了表示显示在规范化面部图像中的眼睛、嘴和面部轮廓的标准特征点,其被表示为如图9和图10所示的小方形标记。标准特征点抽取器134基于从规范化面部图像中获得的特征点来确定眼睛区域和嘴区域,并将眼睛区域和嘴区域的信息与标准特征点一起提供给详细特征点抽取器135,其中每个眼睛区域是包含眼睛的方形,每个嘴区域是包含嘴的方形。
标准特征点是关于显示在规范化面部图像中的眼睛、嘴和面部轮廓的近似特征点,从标准特征点获得的眼睛区域和嘴区域指示出眼睛和嘴的近似位置。
图11的框图示出了图2的详细特征点抽取器135的结构。
模板存储器201存储眼睛、嘴和下颏(面部轮廓)的模板,并将眼睛的模板(眼睛模板)提供到眼睛特征点检测器202,将嘴的模板(嘴模板)提供到嘴特征点检测器203,将下颏的模板(下颏模板)提供到下颏特征点检测器204。
眼睛特征点检测器202接收来自模板存储器201的眼睛模板,同时还接收来自规范化面部图像存储器133的规范化面部图像(见图2)。眼睛特征点检测器202还接收来自标准特征点抽取器134的标准特征点、眼睛区域和嘴区域的信息(在下文中统称为区域信息)。
眼睛特征点检测器202基于来自规范化面部图像存储器133的规范化面部图像、来自标准特征点抽取器134的区域信息和来自模板存储器201的眼睛模板,检测(抽取)规范化面部图像的眼睛的详细特征点。眼睛特征点检测器202将检测到的详细特征点提供到下颏特征点检测器204和面部模型生成器136(见图2)。
嘴特征点检测器203接收来自模板存储器201的嘴模板,来自规范化面部图像存储器133的规范化面部图像(见图2),以及来自标准特征点抽取器134的区域信息。
嘴特征点检测器203基于来自规范化面部图像存储器133的规范化面部图像、来自标准特征点抽取器134的区域信息和来自模板存储器201的嘴模板,检测(抽取)规范化面部图像的嘴的详细特征点。嘴特征点检测器203将检测到的详细特征点提供到下颏特征点检测器204和面部模型生成器136(见图2)。
下颏特征点检测器204接收来自模板存储器201的下颏模板、来自眼睛特征点检测器202的眼睛的详细特征点、来自嘴特征点检测器203的嘴的详细特征点,以及来自规范化面部图像存储器133的规范化面部图像(见图2)。
下颏特征点检测器204基于来自规范化面部图像存储器133的规范化面部图像、来自模板存储器201的下颏模板、来自眼睛特征点检测器202的眼睛的详细特征点和来自嘴特征点检测器203的嘴的详细特征点,检测(抽取)面部轮廓的详细特征点,具体而言是规范化面部图像的下颏。下颏特征点检测器204将检测到的详细特征点提供给面部模型生成器136(见图2)。
图12示出了存储在图11的模板存储器201中的眼睛模板的示例。
眼睛模板按从外到内的顺序包括沿着眼眶与眼睑之间的边界的点(在下文中也称为眼睛的外轮廓)、沿着眼球通过眼睑的开口露出的部分的轮廓的点(在下文中也称为眼睛的内轮廓),以及瞳孔的中心点。
在下文中,在适当时将形成眼睛模板的点称为控制点。图12将控制点表示为方形标记。
在眼睛模板中,眼睛外轮廓上控制点的数目高到足以高度准确地再现眼眶与眼睑之间的边界。如图12所示,采用了30个控制点。
在眼睛模板中,沿眼睛内轮廓的控制点的数目高到足以高度准确地再现从眼睑露出的眼球的轮廓。如图12所示,采用了20个控制点。
在眼睛模板中,眼睛中心的控制点被设置在瞳孔的中心。
眼睛模板中控制点的数目不局限于以上数字。如果以可接受的准确度再现了眼睑之间露出的眼球部分的轮廓,则沿眼睛内轮廓的控制点的数目就足够了。类似地,如果以可接受的准确度再现了眼眶与眼睑之间的边界,则沿眼睛外轮廓的控制点的数目就足够了。
图12的眼睛模板是(显示在规范化面部图像中的人的)右眼的模板。和右眼的模板一样,左眼的模板也存储在模板存储器201中。
与图12的眼睛模板一样,模板存储器201存储嘴模板和下颏模板。
嘴模板包括沿嘴的上唇与下唇之间的标准边界设置的控制点。嘴模板控制点的数目高到足够以可接受的准确度再现上唇与下唇之间的边界。下颏模板包括排成作为面部标准轮廓的部分椭圆形的控制点。沿椭圆下颏设置的控制点的数目高到足够以可接受的准确度再现下颏的轮廓。
下面参照图13的流程图来描述图11的眼睛特征点检测器202的处理。
在步骤S201中,眼睛特征点检测器202基于来自图2的规范化面部图像存储器133的规范化面部图像,和来自标准特征点抽取器134的区域信息的眼睛区域,确定来自模板存储器201的眼睛模板的尺寸和位置的缺省值。
更具体而言,眼睛特征点检测器202在保持与原始形状相似性的情况下,扩大或缩小眼睛模板,以使得眼睛模板内接在规范化面部图像中眼睛区域的信息所表示的矩形区域中。在步骤S201中,置于规范化面部图像中的眼睛模板的尺寸和位置分别是其缺省值。眼睛模板尺寸和位置的缺省值分别称为缺省尺寸和缺省位置。
处理从步骤S201进行到步骤S202。眼睛特征点检测器202从眼睛模板的缺省尺寸和缺省位置开始逐渐改变其尺寸和位置,以使得眼睛模板适应显示在规范化面部图像中的面部。该处理称为位置/尺寸适应处理。
在步骤S202的位置/尺寸适应处理中,眼睛特征点检测器202在保持眼睛模板对原始形状相似性的情况下改变其尺寸和位置,并计算评估函数。评估函数评估其尺寸和位置被改变的眼睛模板有多么紧密地适应显示在规范化面部图像中的面部的眼睛的适应程度。
眼睛特征点检测器202可以在保持对原始形状相似性的情况下扩大或缩小眼睛模板,从而改变眼睛模板的尺寸。眼睛特征点检测器202可以在保持其形状不变的情况下平移整个眼睛模板的控制点,从而移动眼睛模板的位置。除了眼睛模板的平移以外,眼睛特征点检测器202还可以绕瞳孔中心处的控制点转动眼睛模板,从而改变眼睛模板的位置。
眼睛特征点检测器202确定当评估函数产生最紧密地适应的值时,换言之,当评估函数变为其最大值和最小值之一时,眼睛模板的尺寸和位置。
例如,给定位置p和给定尺寸s的评估函数f(p,s)描述如下:
f(p,s)=(-A1+A2)+(B1-B2)…(1)
在等式(1)中,A1表示规范化面部图像中,从以瞳孔中心处的控制点为圆心,并具有半径R0的圆形区域中,采样得到的N0个像素的像素值的和。该圆形区域对应于黑眼睛部分的一部分。A2表示规范化面部图像中,从以与瞳孔中心处的控制点向左和向右间隔距离为L1的点为圆心,并具有半径R1的圆形区域中,采样得到的N1个像素的像素值的和。该圆形区域对应于眼白的一部分。此外,B1表示规范化面部图像中,从以沿着眼睛外轮廓的上半部分的每个控制点为圆心,并具有半径R2的圆形区域中,采样得到的N2个像素的像素值的和。该圆形区域对应于眼睑的一部分。B2表示规范化面部图像中,从以沿着眼睛内轮廓的上半部分的每个控制点为圆心,并具有半径R3的圆形区域中,采样得到的N3个像素的像素值的和。该圆形区域对应于在眼睑之间露出的眼球的一部分。
在等式(1)中,f(p,s)=(-A1+A2)+(B1-B2),与负号相关联的A1和B2是预期较暗(像素值较小)的像素值的和,与正号相关联的A2和B1被预期较亮(像素值较大)。如果评估函数取最大值,则眼睛模板的位置p和尺寸s最紧密地适应于显示在规范化面部图像中的面部的眼睛。
当计算评估函数f(p,s)所需的A1和A2被确定时,像素数N0可以等于也可以不等于像素数N1,其中N0是规范化面部图像中从以瞳孔中心处的控制点为圆心并具有半径R0的圆形区域中采样的像素数,N1是规范化面部图像中从以与瞳孔中心处的控制点向左和向右间隔距离为L1的每个点为圆心并具有半径R1的圆形区域中采样的像素数。存在于规范化面部图像中以瞳孔中心处的控制点为圆心并具有半径R0的圆形区域中的所有像素都可以被采样,存在于规范化面部图像中以与瞳孔中心处的控制点向左和向右间隔距离为L1的点为圆心并具有半径R1的圆形区域中的所有像素都可以被采样。
类似地,当计算评估函数f(p,s)所需的B1和B2被确定时,像素数N2可以等于也可以不等于像素数N3,其中N2是规范化面部图像中从以沿着眼睛外轮廓的上半部分的每个控制点为圆心并具有半径R2的圆形区域中采样的像素数,N3是规范化面部图像中从以沿着眼睛内轮廓的上半部分的每个控制点为圆心并具有半径R2的圆形区域中采样的像素数。存在于规范化面部图像中以沿着眼睛外轮廓的上半部分的每个控制点为圆心并具有半径R2的圆形区域中的所有像素都可以被采样,存在于规范化面部图像中以沿着眼睛内轮廓的上半部分的每个控制点为圆心并具有半径R2的圆形区域中的所有像素都可以被采样。
当计算评估函数f(p,s)时,从规范化面部图像中的像素采样可以按照规则来执行,也可以不按照规则执行。例如,在一种规则中,每两个像素执行一次采样。
为了降低不同规范化面部图像之间的亮度值和对比度的差异的影响,在评估函数f(p,s)=(-A1+A2)+(B1-B2)中,预期较暗的像素的像素值加到带负号的A1和B2中,预期较亮的像素的像素值加到带正号的A2和B1中。
在上述情况下,带正号的B1是从以沿着眼睛外轮廓的上半部分的每个控制点为圆心并具有半径R2的圆形区域中采样得到的N2个像素的像素值的和。从沿着眼睛外轮廓的上半部分的控制点当中,从以眼角附近的控制点为圆心的圆形R2区域中采样的、并且预期较暗的像素的像素值可以被加到带负号的B2而非带正号的B1中。
在以上情况下,被评估函数提供了最大值和最小值之一的眼睛模板的尺寸和位置被确定为最紧密地适应于规范化面部图像的尺寸和位置。在另一实施例中,其评估函数变为高于或低于预定值的眼睛模板的尺寸和位置被确定为最紧密地适应于规范化面部图像的尺寸和位置。在另一实施例中,前一评估函数与当前评估函数之间的差上升到高于或下降到低于预定阈值的眼睛模板的尺寸和位置被确定为最紧密地适应于规范化面部图像的尺寸和位置。
处理从步骤S202进行到步骤S203。眼睛特征点检测器202相对于在步骤S202中确定的眼睛模板的尺寸和位置,改变眼睛模板的形状。从而,眼睛特征点检测器202执行形状适应处理,以使眼睛模板的形状适应于显示在规范化面部图像中的面部的眼睛。
在步骤S202中,眼睛特征点检测器202改变眼睛模板的尺寸和位置,从而使眼睛模板适应于显示在规范化面部图像中的面部的眼睛。在步骤S203中,眼睛特征点检测器202执行形状适应处理。在形状适应处理中,眼睛特征点检测器202改变眼睛模板的形状以使之适应于显示在规范化面部图像中的面部的眼睛。
更具体而言,在第一形状适应操作中,眼睛特征点检测器202从沿着眼睛模板外轮廓的控制点当中,将对应于眼角的多个控制点向上、向下、向右或向左移动,以使得连接所述多个控制点的线尽可能紧密地与规范化面部图像中眼角的轮廓相匹配。
在第二形状适应操作中,眼睛特征点检测器202从沿着眼睛模板外轮廓的控制点当中,将多个上控制点向上或向下移动,以使连接所述多个上控制点的线尽可能紧密地与规范化面部图像中眼眶的上轮廓相匹配。眼睛特征点检测器202从沿着眼睛模板外轮廓的控制点当中,将多个下控制点向上或向下移动,以使连接所述多个下控制点的线尽可能紧密地与规范化面部图像中眼眶的下轮廓相匹配。
在第三形状适应操作中,眼睛特征点检测器202从沿着眼睛模板外轮廓的控制点当中,将较靠近鼻子的多个控制点的位置向上、向下、向右或向左移动,以使连接所述多个控制点的线尽可能紧密地与规范化面部图像中较靠近鼻子的眼眶轮廓相匹配。
在第四形状适应操作中,眼睛特征点检测器202从沿着眼睛模板内轮廓的控制点当中,将较靠近眼角的多个控制点的位置向上、向下、向右或向左移动,以使得连接所述多个控制点的线尽可能紧密地与规范化面部图像中露出的眼球上的眼角侧的眼白轮廓相匹配。眼睛特征点检测器202从沿着眼睛模板内轮廓的控制点当中,将较靠近鼻子的多个控制点的位置向上、向下、向右或向左移动,以使连接所述多个控制点的线尽可能紧密地与规范化面部图像中露出的眼球上的较靠近鼻子的眼白轮廓相匹配。
在第五适应操作中,眼睛特征点检测器202从沿着眼睛模板内轮廓的控制点当中,将多个上控制点的位置向上或向下移动,以使连接所述多个上控制点的线尽可能紧密地与规范化面部图像中从眼睑中露出的眼球的上轮廓相匹配。眼睛特征点检测器202从沿着眼睛模板内轮廓的控制点当中,将多个下控制点的位置向上或向下移动,以使连接所述多个下控制点的线尽可能紧密地与规范化面部图像中从眼睑中露出的眼球的下轮廓相匹配。
在第一至第五适应操作中,与步骤S202中的位置/尺寸适应处理一样,对眼睛模板有多么紧密地适应显示在规范化面部图像中的面部的眼睛的适应程度进行评估的评估函数在控制点被移动的情况下被计算。从而检测指示出最高适应程度的评估函数。
对于第一至第五形状适应操作,可以使用同一评估函数,也可以使用不同的评估函数。例如,在第二适应操作中,从沿着眼睛模板外轮廓的控制点当中,移动了多个上控制点,并且从沿着眼睛模板外轮廓的控制点当中,移动了多个下控制点。在此情况下,从移动多个上控制点时到移动多个下控制点时,评估函数可以改变。对各组控制点采用适当的评估函数,从而眼睛模板的形状可以以更高的准确度适应到规范化面部图像当中。
要被移动的多个控制点中的一些或全部可以用来计算评估函数。控制点即使不被看作要移动的候选者,也可用来计算评估函数。例如,在第一形状适应操作中,从沿着眼睛模板外轮廓的控制点当中,移动了对应于眼角的多个控制点。规范化面部图像中,对应于眼角的多个要被移动的控制点中的一些或全部被采样,并用来计算评估函数。此外,规范化面部图像中位于除了与于眼角对应的多个控制点以外的控制点处的像素也可被采样,并用来计算评估函数。
当步骤S203中的形状适应操作完成时,获得了如下眼睛模板,该眼睛模板所具有的位置、尺寸和形状适应于规范化面部图像的眼睛。在下文中,在适当时将该模板称为适应的模板。眼睛特征点检测器202从适应模板中确定规范化面部图像的特征点,并将该特征点作为详细特征点提供给图11的下颏特征点检测器204和图2的面部模型生成器136。从而处理结束。
眼睛特征点检测器202确定适应的眼睛模板的控制点中的一些或全部,作为规范化面部图像中眼睛的详细特征点。或者,眼睛特征点检测器202可以对连接适应的眼睛模板的控制点的线中的点进行采样,并将采样点确定为规范化面部图像中眼睛的详细特征点。
如上所述,眼睛特征点检测器202使眼睛模板的尺寸和位置适应于显示在规范化面部图像中的面部中的眼睛,并针对尺寸和位置被适应了的眼睛模板,使眼睛模板的形状适应于规范化面部图像的面部中的眼睛。对规范化面部图像的限定区域的处理容易产生大量准确的特征点。
在步骤S203中使眼睛模板的形状适应于规范化面部图像之后,如图13的带箭头的虚线所示,眼睛特征点检测器202返回到步骤S202。对于形状被适应了的眼睛模板,眼睛特征点检测器202使眼睛模板的尺寸和位置适应于规范化面部图像。类似地,眼睛特征点检测器202将步骤S202和S203重复至少一个循环。从而获得更准确的特征点。
图14A和14B示出了在图13的步骤S202中所执行的位置/尺寸适应处理中获得的位置和尺寸适应于规范化面部图像的眼睛模板。
图14A示出了在对规范化面部图像执行的位置/尺寸适应处理中获得的其位置和尺寸适应于一幅规范化面部图像的眼睛模板。图14B示出了在对规范化面部图像执行的位置/尺寸适应处理中获得的其位置和尺寸适应于另一幅规范化面部图像的眼睛模板。
在图14A和图14B的每一张图中,眼睛模板的尺寸和位置与规范化面部图像的眼睛相适应(匹配)。换言之,眼睛模板的尺寸和位置近似与规范化面部图像中眼睛的尺寸和位置相匹配。
如图14A所示,眼睛模板的形状与规范化面部图像中的眼睛匹配得较好,而如图14B所示,眼睛模板的形状与规范化面部图像中的眼睛匹配得不好。
图15A和15B示出了位置、尺寸和形状被适应于规范化面部图像的眼睛模板。这些眼睛模板是通过对其位置和形状适应于规范化面部图像的眼睛模板执行图13的步骤S203中的形状适应处理而获得的。
图15A示出了通过对图14A的眼睛模板执行形状适应处理而获得的眼睛模板。图15B示出了通过对图14B的眼睛模板执行形状适应处理而获得的眼睛模板。
在所产生的图15A和15B的眼睛模板中,眼睛模板的位置、尺寸和形状适应于规范化面部图像的眼睛。更具体而言,眼睛模板的位置、尺寸和形状近似与规范化面部图像的位置、尺寸和形状相匹配。
在图13的步骤S203中,图11的眼睛特征点检测器202执行形状适应处理。在形状适应处理中,改变眼睛模板的形状以适应规范化面部图像中的面部的眼睛。在改变眼睛模板形状的一种可用方法中,形成眼睛模板的多个控制点被彼此独立地移动。
例如,在规范化面部图像中假设从左向右延伸的x轴和从下到上延伸的y轴。控制点的位移由表示为xy坐标系中的坐标(x,y)的移动后的控制点的位置来表示。眼睛模板的形状由形成眼睛模板的多个控制点的所有坐标(x,y)来限定。限定眼睛模板形状的参数是形成眼睛模板的多个控制点的所有坐标(x,y)。参数的数目是形成眼睛模板的控制点的数目的两倍(这是因为有x坐标和y坐标)。
如果形成眼睛模板的多个控制点被独立地移动,则所述多个控制点的坐标(x,y)需要独立提供。
如前所述,眼睛模板包括预定数量的控制点。嘴模板和下颏模板也是如此。独立提供所有控制点的坐标(x,y)是不方便的。如果独立提供多个控制点的坐标(x,y),则坐标(x,y)的组合的数目变得巨大,并且需要大量的时间来计算形状被适应于规范化面部图像中面部的眼睛的眼睛模板。而且,如果形成眼睛模板的多个控制点被独立地移动,则眼睛模板的形状超过眼睛可以占据的范围。眼睛的形状无法适应规范化面部图像中的眼睛。对无法适应规范化面部图像中眼睛的形状计算评估函数,这是无用的工作。
在图13的步骤S203中所执行的形状适应处理中,图11的眼睛特征点检测器202通过如下方式在眼睛可以占据的范围内改变眼睛模板的形状:基于比所述多个参数的数目(形成眼睛模板的控制点数目的两倍)少1的数目的参数,修改作为限定眼睛模板的多个参数的形成眼睛模板的多个控制点的坐标(x,y)。
下面描述基于较小数目的参数来修改形成眼睛模板的多个控制点的坐标(x,y)的方法。
在图13的步骤S203中,眼睛特征点检测器202在第二形状适应操作中,从沿着眼睛模板外轮廓的控制点当中,将多个上或下控制点的位置向上或向下移动,或者在第五形状适应操作中,从沿着眼睛模板内轮廓的控制点当中,将多个上或下控制点的位置向上或向下移动。在此情况下,眼睛特征点检测器202根据以下等式(2),从形成眼睛模板的控制点中确定出要移动的控制点的坐标(xn,yn):
xn=xn′,
yn=(1-t)yn′+tymax(n)其中t≥0,且
yn=(1-(-t))yn′+(-t)ymin(n)其中t<0…(2)
在等式(2)中,n是表示多个控制点当中要移动位置的第n个控制点的序号,xn和yn分别是第n个控制点被移动位置后的x坐标和y坐标,xn′和yn′分别是第n个控制点恰在移动位置之前的x坐标和y坐标。此外,ymax(n)表示第n个控制点y坐标的最大值,ymin(n)是n个控制点y坐标的最小值,t表示被给定用来修改要移动位置的多个控制点中每一个控制点的坐标(x,y)的单个参数,并且是落在从-1到+1范围内的实数。
在等式(2)中,ymax(n)和ymin(n)是预定值,其使得只要参数t落在从-1到+1的范围内,眼睛模板就落在眼睛可以占据的形状范围内。眼睛模板的形状由等式(2)所提供的坐标(x,y)处的控制点表示。
根据等式(2),如图16A~16E所示,要被移动的多个控制点,即沿着眼睛模板外轮廓的控制点当中的多个上或下控制点和沿着眼睛模板内轮廓的控制点当中的多个上或下控制点,响应于对单个参数t的修改而移动其坐标(x,y)。多个控制点以如下方式移动,即眼睛模板的形状在眼睛可以占据的形状范围内变化。
图16A示出了在形状改变之前的眼睛模板,即其位置和形状适应规范化面部图像的眼睛模板的控制点。因此,该眼睛模板的形状类似于存储在图11的模板存储器201中的眼睛模板的形状。
图16B示出了恰在控制点移动之前的眼睛模板,其是从图16A的眼睛模板得到的,并且其所具有的控制点被移动到在等式(2)中利用参数t=0确定的坐标(xn,yn)。图16B的眼睛模板与图16A中的眼睛模板形状相同。
图16C示出了恰在控制点移动之前的眼睛模板,其是从图16A的眼睛模板得到的,并且其所具有的控制点移动到由等式(2)中利用参数t=1确定的坐标(xn,yn)。图16C的眼睛模板与图16A的眼睛模板相比,眼角升高了。
图16D示出了恰在控制点移动之前的眼睛模板,其是从图16A的眼睛模板得到的,并且其所具有的控制点移动到由等式(2)中利用参数t=-1确定的坐标(xn,yn)。图16D的眼睛模板与图16A的眼睛模板相比,眼角降低了。
图16E示出了恰在控制点移动之前的眼睛模板,其是从图16A的眼睛模板得到的,并且其所具有的控制点移动到由等式(2)中在参数t为0.45时确定的坐标(xn,yn)。图16E的眼睛模板与图16A的眼睛模板相比,眼角稍微降低了。
如图16A~16E所示,图16E所示的参数t为0.45的眼睛模板的形状最紧密地适应规范化面部图像的眼睛。
如图16A~16E所示,在第n个控制点中,ymax(n)是+1,ymin(n)是-1。
确定控制点坐标(xn,yn)的等式不局限于等式(2)。控制点的集合不局限于沿着眼睛模板外轮廓的控制点当中的多个上或下控制点,以及沿着眼睛模板内轮廓的控制点当中的多个上或下控制点。
在参照图13的步骤S203讨论的第四形状适应操作中,如果在沿着眼睛模板内轮廓的控制点当中,移动了较靠近鼻子的多个控制点,则眼睛特征点检测器202根据以下等式(3)来确定较靠近鼻子的多个控制点的坐标(xn,yn):
xn=(xn′-xmin(n))tx+xmin(n),
yn=(1-t)yn′+tyymax(n)其中ty≥0,且
yn=(1-(-t))yn′+(-t)ymin(n)其中ty<0…(3)其中n、xn、yn、xn′、yn′、ymax(n)和ymin(n)分别与等式(2)中的相应部分相同。而且,xmin(n)表示第n个控制点可以取到的x坐标的最小值,tx和ty是用来修改形成眼睛模板的多个控制点中每一个控制点的坐标(x,y)的两个参数。参数tx例如是落在从0到+1范围内的实数,参数ty例如是落在从-1到+1范围内的实数。
在等式(3)中,xmin(n)、ymax(n)和ymin(n)是预定值,其使得只要参数tx在从0到+1的范围内变化,并且参数ty在从-1到+1的范围内变化,眼睛模板就落在眼睛可以占据的形状范围内。眼睛模板的形状由等式(3)所提供的坐标(x,y)处的控制点表示。
根据等式(3),基于两个参数tx和ty来修改要被移动的多个控制点的坐标(x,y),即沿着眼睛模板内轮廓的控制点当中的多个控制点的坐标(x,y)。如图16A~16E所示,多个控制点以如下方式移动,即眼睛模板的形状在眼睛可以占据的形状范围内变化。
如图17A所示,在沿着眼睛模板内轮廓的控制点当中,由实心方形标记表示的多个控制点较靠近鼻子。基于两个参数tx和ty来移动较靠近鼻子的多个控制点的位置,以使得眼睛模板的形状在眼睛可以占据的形状范围内变化。
如图17B所示,基于参数tx,沿x方向移动较靠近鼻子的多个控制点当中的第n个控制点的位置,以使得x坐标变为xmin(n)或更大。如图17B所示,xmin(n)为0。
如图17C所示,基于参数ty,沿y方向移动较靠近鼻子的多个控制点当中的第n个控制点的位置,以使得y坐标落在从ymin(n)或更大到ymax(n)或更小的范围之内。如图17C所示,ymax(n)为+1,而ymin(n)为-1。
基于参数t、tx和ty来修改作为限定眼睛模板形状的多个参数的多个控制点的x坐标和y坐标,所述参数的数目比所述多个参数的数目至少小1。位置和尺寸适应了规范化面部图像的眼睛模板的形状在眼睛形状的范围之内改变。更具体而言,形成眼睛模板的多个控制点成组(集合)地移动位置。较少数目的参数的操作使眼睛模板的形状适应规范化面部图像。从而,眼睛模板的形状容易适应于规范化面部图像。
在形状适应处理中,连接形成眼睛模板的控制点当中的外轮廓控制点的线被移动,以与规范化面部图像中眼眶的轮廓对准,然后,连接内轮廓控制点的线被移动,以与规范化面部图像中眼球的露出部分对准。
这样,连接外轮廓控制点的线被移动以与规范化面部图像中眼眶的轮廓对准,然后移动连接内轮廓的线。从而约束了内轮廓控制点的移动范围,从而进一步有利于形状适应处理。
如果内轮廓控制点被置于由连接外轮廓控制点的线所限定的区域之外,则眼睛模板的形状落在眼睛形状的区域之外。内轮廓控制点所移动到的位置限于由连接外轮廓控制点的线所包围的区域。这样,减少了形状适应处理所涉及的工作量。
下面参照图18的流程图,描述图11的嘴特征点检测器203的处理。
嘴特征点检测器203所执行的处理流程大体上与眼睛特征点检测器202所执行的图13的处理相同,只是要处理的面部区域是嘴而非眼睛。
在步骤S211中,嘴特征点检测器203基于来自图2的规范化面部图像存储器133的规范化面部图像和来自标准特征点抽取器134的区域信息中的嘴区域的信息,确定来自模板存储器201的嘴模板的尺寸和位置的缺省值。
嘴模板包括排成水平线的许多控制点。嘴特征点检测器203扩大或缩小嘴模板的尺寸,以使得规范化面部图像中由嘴区域的信息所表示的矩形区域的水平长度与嘴模板的水平长度相匹配。嘴特征点检测器203将扩大的嘴模板和缩小的嘴模板中之一置于规范化面部图像中,以使得所述扩大的嘴模板和缩小的嘴模板中之一以嘴区域信息所表示的矩形区域的垂直中心点为中心,并且内接在该矩形区域中。在步骤S211中被设置在规范化面部图像中的嘴模板的尺寸和位置分别是其缺省值。嘴模板尺寸和位置的缺省值分别称为缺省尺寸和缺省位置。
处理从步骤S211进行到步骤S212。嘴特征点检测器203从嘴模板的缺省尺寸和缺省位置开始,逐渐改变其尺寸和位置,以使得嘴模板适应显示在规范化面部图像中的面部。该处理称为位置/尺寸适应处理。
在步骤S212的位置/尺寸适应处理中,嘴特征点检测器203在保持嘴模板对原始形状相似性的情况下改变其尺寸和位置,并计算评估函数。评估函数评估其尺寸和位置被改变的嘴模板有多么紧密地适应显示在规范化面部图像中的面部的嘴(上唇与下唇间的边界)的适应程度。
嘴特征点检测器203在保持对原始形状相似性的情况下扩大或缩小嘴模板,从而改变嘴模板的尺寸。嘴特征点检测器203在保持其形状不变的情况下平移整个嘴模板的控制点,从而移动嘴模板的位置。除了嘴模板的平移以外,嘴特征点检测器203还可以绕任意控制点转动嘴模板,从而改变嘴模板的位置。
嘴特征点检测器203确定当评估函数产生最紧密地适应的值时,换言之,当评估函数变为其最大值和最小值之一时,嘴模板的尺寸和位置。
处理从步骤S212进行到步骤S213。嘴特征点检测器203相对于在步骤S212中确定的嘴模板的尺寸和位置,改变嘴模板的形状。从而,嘴特征点检测器203执行形状适应处理,以使嘴模板的形状适应于显示在规范化面部图像中的面部中的嘴。
在步骤S212中,嘴特征点检测器203改变嘴模板的尺寸和位置,从而使嘴模板适应于显示在规范化面部图像中的面部的嘴。在步骤S213中,嘴特征点检测器203执行形状适应处理。在形状适应处理中,嘴特征点检测器203使嘴模板的形状适应于显示在规范化面部图像中的面部的嘴。
更具体而言,嘴特征点检测器203移动形成嘴模板的控制点中的至少一个,并且此后逐渐减少要移动的控制点的数目。
在形状适应处理中,与眼睛特征点检测器202一样,嘴特征点检测器203将形成嘴模板的所有控制点选择为要移动的候选控制点,并一致地移动所有选定的控制点。更具体而言,嘴特征点检测器203基于数目比限定嘴模板的多个参数的数目小至少1的参数,来修改作为限定嘴模板的多个参数的多个控制点中每一个的x坐标和y坐标。嘴特征点检测器203在嘴的形状范围内改变嘴模板(其位置和尺寸适应规范化面部图像)的形状。从而,较少数目的参数的操作使嘴模板的形状尽可能紧密地与规范化面部图像中的嘴相匹配。
与眼睛特征点检测器202一样,嘴特征点检测器203例如将多个控制点中的左边一半选择为要移动的候选控制点,并一致地移动所有候选控制点。从而,嘴特征点检测器203使嘴模板的形状适应规范化面部图像中的嘴。
与眼睛特征点检测器202一样,嘴特征点检测器203例如将多个控制点中的右边一半选择为要移动的候选控制点,并一致地移动所有候选控制点。从而,嘴特征点检测器203使嘴模板的形状适应规范化面部图像中的嘴。
嘴特征点检测器203从形成嘴模板的控制点当中,相继选择靠近嘴中心的多个控制点、靠近嘴的左端和嘴中心之间中点的多个控制点,以及靠近嘴的右端和嘴中心之间中点的多个控制点,作为候选控制点。与眼睛特征点检测器202一样,嘴特征点检测器203一致地移动所有候选控制点,以使嘴模板的形状适应规范化面部图像中的嘴。
嘴特征点检测器203逐个选择形成嘴模板的控制点作为候选控制点并使其移动,以使嘴模板的形状适应规范化面部图像中的嘴。在此情况下,执行控制点的移动,以使得嘴模板的形状落入规范化面部图像中嘴的区域之内。由于控制点是逐个移动的,因此通过直接提供要移动的控制点的坐标(x,y)来执行移动操作。
使嘴模板的形状适应于规范化面部图像中的嘴的处理是如在前面图13的步骤S202中的位置/尺寸适应处理中讨论的那样执行的。对于每个被移动的控制点,计算评估函数,所述评估函数评估嘴模板有多么紧密地适应显示在规范化面部图像中的面部的嘴的适应程度。
当步骤S213中的形状适应处理完成时,获得了位置、尺寸和形状适应规范化面部图像中的嘴的嘴模板(在下文中称为适应的嘴模板)。嘴特征点检测器203从适应的嘴模板中确定规范化面部图像中的嘴的特征点,并将该特征点作为详细特征点提供给图11的下颏特征点检测器204和图2的面部模型生成器136。然后处理结束。
嘴特征点检测器203确定形成适应嘴模板的控制点中的一些或全部,作为规范化面部图像中嘴的详细特征点。或者,嘴特征点检测器203可以对连接适应的嘴模板的控制点的线中的点进行采样,并将采样点确定为规范化面部图像中嘴的详细特征点。
与图11的眼睛特征点检测器202一样,嘴特征点检测器203使嘴模板的尺寸和位置适应于显示在规范化面部图像中的面部中的嘴,并针对尺寸和位置适应了的嘴模板,使嘴模板的形状适应于规范化面部图像的面部中的嘴。从而容易获取大量详细特征点。
当嘴模板的多个控制点被移动位置时,与眼睛特征点检测器202一样,嘴特征点检测器203基于数目比限定嘴模板形状的多个参数的数目小至少1的参数,来修改作为限定嘴模板形状的多个参数的多个控制点中每一个的x坐标和y坐标。从而,在嘴的形状范围内改变了嘴模板(其位置和尺寸适应规范化面部图像)的形状。从而容易使嘴模板的形状适应于规范化面部图像。
由于嘴特征点检测器203逐渐减少要移动的控制点,因此改善了评估函数的收敛性。嘴特征点检测器203防止一个控制点移动到距另一控制点极远的位置。
当嘴特征点检测器203逐渐减少嘴模板中要移动的控制点的数目时,在其中控制点可以移动的区域也逐渐变窄。
与图11的眼睛特征点检测器202一样,在步骤S213中使嘴模板的形状适应于规范化面部图像之后,如带箭头的虚线所示,嘴特征点检测器203返回到步骤S212。嘴特征点检测器203参照其形状适应了的嘴模板,使嘴模板的尺寸和位置适应于规范化面部图像。类似地,将步骤S212和S213重复至少一个循环。从而获得高度准确的特征点。
如图18所示,嘴特征点检测器203基于来自图2的标准特征点抽取器134的区域信息中的嘴区域信息,确定来自模板存储器201的嘴模板的缺省尺寸和缺省位置。嘴模板的缺省尺寸和缺省位置是基于由眼睛特征点检测器202获得的眼睛的详细特征点而确定的。
例如,右眼瞳孔中心处的特征点与左眼瞳孔中心处的特征点之间的中点被看作是显示在规范化面部图像中的眼睛的中心。嘴模板的水平中心位置,即将嘴模板分成两个相等的水平区段的点,在垂直观察时与眼睛的中心对准。嘴模板的垂直延伸的中心线与嘴区域信息所表示的矩形区域的垂直延伸中心线对准。此外,不延伸超过嘴区域信息所表示的矩形区域的嘴模板的尺寸和位置被作为缺省尺寸和缺省位置处理。
眼睛特征点检测器202的处理可以在嘴特征点检测器203的处理之前执行,反之亦可。眼睛特征点检测器202的处理和嘴特征点检测器203的处理可以同时执行。然而,如果嘴特征点检测器203基于眼睛特征点检测器202所获得的眼睛的详细特征点来确定嘴模板的缺省尺寸和缺省位置,则首先执行眼睛特征点检测器202的处理,在获得眼睛的详细特征点之后,嘴特征点检测器203执行其处理。
图19A示出了其位置和尺寸适应规范化面部图像,并且是在图18的步骤S212中的位置/尺寸适应处理中获得的嘴模板。图19B示出了其位置、尺寸和形状适应规范化面部图像、在图18的步骤S213中的形状适应处理中基于图19A的嘴模板而获得的嘴模板。
更具体而言,图19A的上部示出了在对规范化面部图像执行的位置/尺寸适应处理中获得的其位置和尺寸适应一幅规范化面部图像的嘴模板。图19B的上部示出了在对规范化面部图像执行的位置/尺寸适应处理中获得的其位置和尺寸适应另一幅规范化面部图像的嘴模板。
在图19A和19B中每一幅的上部中,嘴模板的尺寸和位置适应规范化面部图像的上唇与下唇之间的边界(嘴)。更具体而言,嘴模板的尺寸和位置分别近似地与规范化面部图像的尺寸和位置相匹配。
然而,嘴模板的形状与规范化面部图像中的嘴不匹配。
图19A的下部示出了通过对图19A上部所示的嘴模板执行形状适应处理而获得的嘴模板。图19B的下部示出了通过对图19B上部所示的嘴模板执行形状适应处理而获得的嘴模板。
在图19A和19B中每一幅的下部的嘴模板中,嘴模板的位置、尺寸和形状适应规范化面部图像中的嘴。更具体而言,嘴模板的位置、尺寸和形状分别近似地与规范化面部图像的上唇与下唇之间的边界(嘴)的位置、尺寸和形状相匹配。
下面参照图20的流程图,描述图11的下颏特征点检测器204的处理。
下颏特征点检测器204的处理是对面部中的下颏而非眼睛执行的,大体上与参照图13讨论的眼睛特征点检测器202的处理类似。
在步骤S221中,下颏特征点检测器204基于来自图2的规范化面部图像存储器133的规范化面部图像、来自图11的眼睛特征点检测器202的眼睛的详细特征点,以及来自嘴特征点检测器203的嘴的详细特征点,确定来自模板存储器201的下颏模板的尺寸和位置的缺省值。
下颏特征点检测器204将右眼瞳孔中心处的特征点与左眼瞳孔中心处的特征点之间的中点看作显示在规范化面部图像中的眼睛的中心。下颏特征点检测器204将嘴的详细特征点当中作为中心控制点的详细特征点(例如,在被适应到规范化面部图像之前位于嘴模板中心处的控制点)看作显示在规范化面部图像中的人的嘴的中心。连接眼睛中心和嘴中心的线(在下文中称为中心线)被确定。
下颏特征点检测器204确定眼睛中心和嘴中心之间的长度,并响应于所确定的长度扩大或缩小下颏模板。
下颏特征点检测器204在从嘴中心沿中心线延伸的线中确定一个点。该点到嘴中心的距离是所确定的眼睛中心和嘴中心之间的长度的预定倍数。在下文中将该点称为下颏标准位置。将下颏模板置于规范化面部图像中,以使得下颏模板中下颏中心处的控制点与下颏标准位置对准。
如上所述,下颏模板包括排成作为面部典型轮廓的半椭圆形状的控制点。控制点的数目需要足够再现下颏的轮廓。被称为下颏中心的控制点设置在半椭圆形下颏的最低点处。下颏特征点检测器204将下颏模板置于规范化面部图像中,以使得该控制点与下颏标准位置对准,并且中心线垂直于在该控制点处与下颏轮廓相切的直线。在步骤S221中设置在规范化面部图像中的下颏模板的尺寸和位置分别是其各自的缺省值。下颏模板的尺寸和位置的缺省值分别称为缺省尺寸和缺省位置。
处理从步骤S221进行到步骤S222。下颏特征点检测器204从下颏模板的缺省尺寸和缺省位置开始逐渐改变其尺寸和位置,以使得下颏模板适应显示在规范化面部图像中的面部。该处理称为位置/尺寸适应处理。
在步骤S222的位置/尺寸适应处理中,下颏特征点检测器204在保持下颏模板对原始形状相似性的情况下改变其尺寸和位置,并计算评估函数。评估函数评估其尺寸和位置被改变的下颏模板有多么紧密地适应显示在规范化面部图像中的面部轮廓(具体地说是面部的下颏)的适应程度。
下颏特征点检测器204在保持对原始形状相似性的情况下扩大或缩小下颏模板,从而改变下颏模板的尺寸。下颏特征点检测器204在保持其形状不变的情况下平移整个下颏模板的控制点,从而移动下颏模板的位置。除了下颏模板的平移以外,下颏特征点检测器204还可以绕任意控制点转动下颏模板,从而改变下颏模板的位置。
下颏特征点检测器204确定当评估函数产生最紧密地适应的值时,下颏模板的尺寸和位置。
处理从步骤S222进行到步骤S223。下颏特征点检测器204相对于在步骤S222中确定的下颏模板的尺寸和位置,改变下颏模板的形状。从而,下颏特征点检测器204执行形状适应处理,以使下颏模板的形状适应于规范化面部图像中的面部轮廓(具体地说是面部的下颏)。
在步骤S222中,下颏特征点检测器204改变下颏模板的尺寸和位置,从而使下颏模板适应于显示在规范化面部图像中的面部的下颏。在步骤S223中,下颏特征点检测器204执行形状适应处理。在形状适应处理中,下颏特征点检测器204使下颏模板适应于显示在规范化面部图像中的面部的下颏。
在形状适应处理中,与嘴特征点检测器203一样,下颏特征点检测器204移动下颏模板的多个控制点。更具体而言,下颏特征点检测器204基于数目比限定下颏模板的多个参数的数目小至少1的参数,来修改作为限定下颏模板的多个参数的多个控制点中每一个的x坐标和y坐标。从而,较少数目的参数的操作使下颏模板的形状尽可能紧密地与规范化面部图像中的下颏相匹配。该处理被重复,其中每次减少要移动的控制点的数目。
当下颏特征点检测器204以及完成了步骤S223中的形状适应处理时,就获得了位置、尺寸和形状适应规范化面部图像中下颏的下颏模板(在下文中称为适应的下颏模板)。下颏特征点检测器204从适应的下颏模板中确定规范化面部图像中的面部轮廓(具体而言是面部的下颏)的特征点,并将该特征点作为详细特征点提供给图2的面部模型生成器136。然后处理结束。
下颏特征点检测器204确定形成适应的下颏模板的控制点中的一些或全部,作为规范化面部图像中下颏的详细特征点。或者,下颏特征点检测器204可以对连接适应的下颏模板的控制点的线中的点进行采样,并将采样点确定为规范化面部图像中下颏的详细特征点。
与眼睛特征点检测器202和嘴特征点检测器203一样,下颏特征点检测器204容易地使下颏模板适应于规范化面部图像。容易获得许多高度准确的特征点。
与图11的眼睛特征点检测器202一样,在步骤S223中使下颏模板的形状适应于规范化面部图像之后,如带箭头的虚线所示,下颏特征点检测器204返回到步骤S222。下颏特征点检测器204参照其形状已经适应了的下颏模板,使下颏模板的尺寸和位置适应于规范化面部图像。同样,将步骤S222和S223重复至少一个循环。从而获得高度准确的特征点。
参照图21至图24,进一步讨论由图2的标准特征点抽取器134获得的标准特征点,以及由图2的详细特征点抽取器135获得的详细特征点。
图21和图22示出了标准特征点抽取器134例如使用AAM技术确定的标准特征点。
图21示出了整个面部的标准特征点,图22示出了作为面部一个区域的眼睛区域的标准特征点。
如图21和22所示,标准特征点的数目不太多,准确度也不太高。如图21所示,标准特征点散布在眼睛、嘴、下颏和鼻子上。对于眼睛,如图22所示,标准特征点设置在眼睛附近。并未准确示出从眼睑中露出的眼球部分的轮廓和眼眶轮廓的位置。
图23和图24示出了由详细特征点抽取器135获得的详细特征点。
图23示出了从沿着眼睛模板内轮廓的控制点中获得的详细特征点,图24示出了从沿着眼睛模板外轮廓的控制点中获得的详细特征点。
如图23所示,从沿着眼睛模板内轮廓的控制点中获得的详细特征点准确地示出了眼球露出部分的轮廓的位置。从沿着眼睛模板内轮廓的控制点中获得的详细特征点的数目足以利用连接这些详细特征点的线来再现眼球露出部分的轮廓。
如图24所示,从沿着眼睛模板外轮廓的控制点中获得的详细特征点准确地指示出眼眶与眼睑间边界的位置。而且,通过将从沿着眼睛模板外轮廓的控制点中获得的详细特征点连接起来,准确地再现了眼眶与眼睑间的边界。
图25的框图示出了图2的面部模型生成器136的结构。
面部模型生成器136包括标准3D模型存储器251、面部模型处理器252、头发模型处理器253和合成器254。
标准3D模型存储器251存储具有标准面部的3D形状的面部模型、具有标准颈部的3D形状的颈部模型、具有标准左右耳的3D形状的耳朵模型,以及具有标准头发形状的头发模型。面部模型、颈部模型、耳朵模型和头发模型是预先准备的,并存储在标准3D模型存储器251中。面部模型、颈部模型和耳朵模型可以是对真人建模的模型,但在这里是虚拟模型。例如,这里所使用的面部模型是完美地两边对称的。
存储在标准3D模型存储器251中的面部模型、颈部模型和耳朵模型被提供给面部模型处理器252,头发模型被提供给头发模型处理器253。
面部模型处理器252包括面部模型适应器261、颈部模型适应器262、耳朵模型适应器263、扩展器264和合成器265。
面部模型适应器261接收来自规范化面部图像存储器133的规范化面部图像、来自详细特征点抽取器135的详细特征点,以及来自标准3D模型存储器251的面部模型。面部模型适应器261基于来自详细特征点抽取器135的详细特征点,使来自标准3D模型存储器251的面部模型适应于显示在来自规范化面部图像存储器133的规范化面部图像中的面部。这样,作为显示在规范化面部图像中的面部的3D模型的面部模型被生成并提供给扩展器264。
颈部模型适应器262接收来自规范化面部图像存储器133的规范化面部图像、来自详细特征点抽取器135的详细特征点,以及来自标准3D模型存储器251的颈部模型。颈部模型适应器262基于来自详细特征点抽取器135的详细特征点,使来自标准3D模型存储器251的颈部模型适应于显示在来自规范化面部图像存储器133的规范化面部图像中的颈部。这样,作为显示在规范化面部图像中的颈部的3D模型的颈部模型被生成,并随后提供给合成器265。
耳朵模型适应器263接收来自规范化面部图像存储133的规范化面部图像、来自详细特征点抽取器135的详细特征点,以及来自标准3D模型存储器251的耳朵模型。耳朵模型适应器263基于来自详细特征点抽取器135的详细特征点,使来自标准3D模型存储器251的耳朵模型适应于显示在来自规范化面部图像存储器133的规范化面部图像中的耳朵。这样,作为显示在规范化面部图像中的耳朵的3D模型的耳朵模型被生成,并随后提供给合成器265。
扩展器264在作为深度方向的z方向上扩展从面部模型适应器261提供的面部模型的侧面部分,并将所产生的面部模型提供给合成器265。
合成器265将从颈部模型适应器262提供的颈部模型和从耳朵模型适应器263提供的耳朵模型两者与从扩展器264提供的面部模型合成起来,并将合成了颈部模型和耳朵模型的面部模型提供给合成器254。
头发模型处理器253包括适配单元271,非头发部分检测器272、Z值修改器273和滤波器274。
适配单元271接收来自图2的规范化面部图像存储器133的规范化面部图像、来自详细特征点抽取器135的详细特征点,以及来自标准3D模型存储器251的头发模型。基于来自详细特征点抽取器135的详细特征点,适配单元271将来自标准3D模型存储器251的头发模型适配到显示在来自规范化面部图像存储器133的规范化面部图像中的头部上,然后将所产生的头发模型提供给Z值修改器273。
非头发部分检测器272接收规范化面部图像存储器133的规范化面部图像。非头发部分检测器272从提供自规范化面部图像存储器133的规范化面部图像中检测非头发部分,并将非头发部分的信息提供给Z值修改器273。
Z值修改器273根据来自非头发部分检测器272的关于非头发部分的信息,检测被适配到从适配单元271提供的头发模型(即被适配到规范化面部图像中的头部上的头发模型)的非头发部分,修改被适配到该非头发部分上的部分的Z值,并将该Z值提供给滤波器274。
滤波器274利用低通滤波器对被Z值修改器273修改的头发模型的Z值进行滤波,并将滤波后的头发模型提供给合成器254。
合成器254将从面部模型处理器252中的合成器265提供来的面部模型与从头发模型处理器253中的滤波器274提供来的头发模型合成起来,并向图2的面部模型存储器137提供合成了头发模型的面部模型,以存储为最终面部模型。
下面参照图26至图28来描述图25的面部模型适应器261的处理。
图26示出了存储在标准3D模型存储器251中的面部模型。
存储在标准3D模型存储器251中的面部模型是正面看去的标准面部的3D模型,并具有其每个点处的xyz坐标(x,y,z)。坐标(x,y,z)的x轴对准水平方向,y轴对准垂直方向,z轴对准深度方向。将z坐标值称为Z值。如图26所示,在x轴对准水平方向且y轴对准垂直方向时的坐标(x,y)中,Z值表示从前面观察的面部模型每个点处的明暗度。
例如,z轴从前向后延伸开去,面部模型最前面的点的Z值是0,较小Z值的点(较靠前的点)表示较亮的点,较大Z值的点(靠后较深)表示较暗的点。
如图26所示,设定5个参考点Dp1、Dp2、Dp3、Dp4和Dp5来将存储在标准3D模型存储器251中的面部模型(从前面观察)分成4个垂直方向上的垂直区段Dv1、Dv2、Dv3和Dv4,以及两个水平区段Dh1和Dh2。
参考点Dp1是沿头发和面部之间边界的最顶端的点,参考点Dp2是眼睛的中心点(左眼瞳孔中心与右眼瞳孔中心之间的中点)。参考点Dp3是鼻子朝向上唇侧的点,参考点Dp4是上唇与下唇之间的嘴上的点。参考点Dp5是面部的最底端的点,即沿着下颏与颈部之间的边界的最低点。
区段Dv1是介于通过参考点Dp1的水平线(平行于x轴)与通过参考点Dp2的水平线之间的区域,区段Dv2是在介于通过参考点Dp2的水平线与通过参考点Dp3的水平线之间的区域。区段Dv3是介于通过参考点Dp3的水平线与通过参考点Dp4的水平线之间的区域,区段Dv4是介于通过参考点Dp4的水平线与通过参考点Dp5的水平线之间的区域。
如前所述,存储在标准3D模型存储器251中的面部模型是两边对称的,5个参考点Dp1、Dp2、Dp3、Dp4和Dp5都位于对称轴上。
依次连接5个参考点Dp1、Dp2、Dp3、Dp4和Dp5的直线将面部模型分成两个水平区段Dh1和Dh2。
依次连接5个参考点Dp1、Dp2、Dp3、Dp4和Dp5的直线与对称轴重合。面部模型的两个区段Dh1和Dh2相对于该对称线对称。
存储在标准3D模型存储器251中的面部模型被5个参考点Dp1、Dp2、Dp3、Dp4和Dp5分成4个垂直区段Dv1、Dv2、Dv3和Dv4,以及两个水平区段Dh1和Dh2。结果,面部模型被分成8个区段R1、R2、R3、R4、R5、R6、R7和R8。
图25的面部模型适应器261使来自标准3D模型存储器251的面部模型(在下文中称为标准面部模型)适应于显示在来自规范化面部图像存储器133的规范化面部图像中的面部。为此,面部模型适应器261基于来自详细特征点抽取器135的详细特征点,将显示在规范化面部图像中的面部分成与8个区段R1至R8相对应的8个匹配区域。
图27示出了被分成与8个区段R1至R8相对应的8个匹配区域的显示在规范化面部图像中的面部。
面部模型适应器261在规范化面部图像中检测对应于图26的5个参考点Dp1至Dp5的匹配点。
面部模型适应器261将来自详细特征点抽取器135的详细特征点当中的下颏的详细特征点连接起来,从而识别显示在规范化面部图像中的面部的轮廓。从面部轮廓中,面部模型适应器261检测显示在规范化面部图像中的面部的最顶端的点,其对应于参考点Dp1(沿着前额与头发之间边界的最顶端点)。
面部模型适应器261基于来自详细特征点抽取器135的详细特征点当中的眼睛的详细特征点,确定作为左右眼瞳孔中心间中点的眼睛的中心点,并将该中心点检测为参考点Dp2的匹配点,即显示在规范化面部图像中的面部的眼睛的中心。
面部模型适应器261对规范化面部图像执行图像处理,以检测显示在规范化面部图像中的面部的鼻子的鼻孔,即位于眼睛的水平与嘴的水平之间的两个基本呈椭圆形的暗孔。然后,面部模型适应器261检测两个鼻孔重心之间的中点作为对应于参考点Dp3的匹配点,即作为显示在规范化面部图像中的面部的接近于上唇的鼻子的点。
面部模型适应器261从来自详细特征点抽取器135的详细特征点当中,检测作为嘴的详细特征点的中心控制点的详细特征点(例如在被适应到规范化面部图像之前位于嘴模板中心的控制点)。然后,面部模型适应器261将检测到的详细特征点设定为对应于参考点Dp4的匹配点,即显示在规范化面部图像中的面部的嘴(上唇与下唇之间)中的点。
面部模型适应器261从来自详细特征点抽取器135的详细特征点当中,检测作为下颏中心处的控制点的详细特征点。面部模型适应器261将检测到的详细特征点设定为对应于参考点Dp5的匹配点,即显示在规范化面部图像中的面部的最低点(沿着面部与颈部之间边界的最低点)。
如图27所示,面部模型适应器261利用分别通过5个参考点Dp1至Dp5的5条水平线,将规范化面部图像分成对应于4个垂直区段Dv1至Dv4(见图26)的区域。
如图27所示,面部模型适应器261通过将分别对应于5个参考点Dp1至Dp5的匹配点连接起来,将规范化面部图像分成对应于两个水平区段Dh1和Dh2(见图26)的两个区域。
这样,面部模型适应器261将规范化面部图像分成4个垂直区段和2个水平区段。显示在规范化面部图像中的面部被分成与8个区段R1至R8(见图26)相对应的总共8个匹配区域。
面部模型适应器261在区段R1至R8的每一个当中,逐个区段地使图26的面部模型适应于显示在来自规范化面部图像存储器133的规范化面部图像中的面部。
面部模型适应器261修改区段R1中每个点(x,y,z)的x坐标和y坐标,以使得参考点Dp1至Dp5当中在标准面部模型的区域R1的边界上的参考点Dp1和Dp2(见图26)与规范化面部图像中的匹配点重合,以使得区段R1与规范化面部图像中的匹配区域相匹配。从而,面部模型适应器261对标准面部模板中的区段R1进行了适配(改变形状)。
面部模型适应器261对其他区段R2至R8进行适配,从而产生整个标准面部模型适应于显示在规范化面部图像中的整个面部的面部模型。所产生的面部模型然后被提供给扩展器264。
图28示出了通过使图26的标准面部模型适应于图27的显示在规范化面部图像中的面部而获得的面部模型。在图28中,和图26中一样,在x轴对准水平方向且y轴对准垂直方向的xy坐标中,由坐标(x,y)表示的面部模型上每个点处的Z值表示面部模型的明暗度。
在被适应于显示在规范化面部图像中的面部的面部模型中,存在与显示在规范化面部图像中面部的每个点(像素)相对应的点。面部模型适应器261向面部模型中的每个点提供了显示在规范化面部图像中面部的相应点处的像素值。被适应于显示在规范化面部图像中的面部的面部模型除了包含xyz坐标系中的坐标(x,y,z)以外,还包含像素值(色彩)。
下面参照图29来描述图25的颈部模型适应器262的处理。
颈部模型适应器262基于来自详细特征点抽取器135的详细特征点当中的眼睛的详细特征点,确定显示在规范化面部图像中的面部的左眼和右眼中每一个的瞳孔的中心。颈部模型适应器262基于来自详细特征点抽取器135的详细特征点当中的嘴的详细特征点,确定显示在规范化面部图像中的面部的嘴的中心。
颈部模型适应器262将图29所示的阴影区域确定为规范化面部图像中颈部所在的区域。该阴影区域是由通过左眼和右眼瞳孔中心的两条垂直线之间,以及通过嘴中心的平行线下方的区域来限定的。颈部模型适应器262使来自标准3D模型存储器251的颈部模型适应于颈部区域。更具体而言,颈部模型适应器262以如下方式将颈部模型适配到颈部区域:使颈部模型中的每个点对应于颈部区域中各自的点。
颈部模型适应器262将被适应于颈部区域的颈部模型提供给图25的合成器265,作为适应于显示在规范化面部图像中的颈部的模型。
下面参照图30来讨论图25的耳朵模型适应器263的处理。
耳朵模型适应器263基于来自详细特征点抽取器135的详细特征点当中的眼睛的详细特征点,确定显示在规范化面部图像中的面部的眼睛的中心。耳朵模型适应器263确定显示在规范化面部图像中的面部中的鼻子的鼻孔。耳朵模型适应器263从显示在规范化面部图像中的面部的轮廓中确定面部的最大宽度。面部的轮廓是通过将来自详细特征点抽取器135的详细特征点当中的下颏详细特征点连接起来而获得的。
如图30所示,耳朵模型适应器263确定耳朵可以存在的含耳区域(在下文中称为候选含耳区域)。候选含耳区域是由眼睛中心与鼻孔之间的垂直长度,以及与面部水平宽度整数倍相等的水平长度限定的矩形。
耳朵模型适应器263从面部外侧开始向左或向右水平扫描候选含耳区域,直到面部轮廓,以读取规范化面部图像的像素值。从而,耳朵模型适应器263检测肉色的像素值。
耳朵模型适应器263确定从首个检测到的肉色像素值开始到显示在规范化面部图像中的面部的轮廓的水平距离。如果该距离高于预定距离,则耳朵模型适应器263确定向着面部轮廓存在耳朵,然后扫描规范化面部图像的像素直到面部轮廓。耳朵模型适应器263检测具有肉色像素值的像素作为表示耳朵的像素。耳朵模型适应器263对矩形候选含耳区域的每一行执行以上处理。从而检测出包含显示耳朵的像素的耳朵区域。
在检测耳朵区域之后,耳朵模型适应器263使来自标准3D模型存储器251的耳朵模型适应于耳朵区域。更具体而言,耳朵模型适应器263对耳朵模型进行适配,以使得耳朵模型中的每个点适配于耳朵区域中各自的点。
耳朵模型适应器263将适应于耳朵区域的耳朵模型提供给图25的合成器265,作为适应于显示在规范化面部图像中的耳朵的耳朵模型。
下面参照图31至图37来描述图25的扩展器264的处理。
扩展器264沿作为深度方向的Z方向扩展从图25的面部模型适应器261提供的面部模型的侧面部分。
图31示意性地图示了面部模型适应器261所获得的面部模型。在图31中,z轴对准水平方向。
由于面部图像是正面拍摄的图像,因此人的面部仅在从前面观察的覆盖范围内被拍摄。面部图像和规范化面部图像中都不包含任何未出现在前视图中的部分。换言之,不包含面部的侧面部分以及面部的头顶部分。
如图31所示,面部的侧面部分和头顶部分,即面部的深度部分,在适应于规范化面部图像的面部模型中看起来位于边缘。
如图31所示,在面部模型最前端的点处的Z值(z坐标)是0,并且Z值z1、z2和z3具有0<z1<z2<z3的关系。该面部模型所具有的深度部分到达z2。Z值越大,面部图像的深度部分就越多。
为了给面部模型以适度的深度,扩展器264根据非线性函数来变换面部模型的Z值(z坐标),以便以非线性方式沿Z方向扩展面部模型。面部模型的侧面部分沿Z方向扩展。
图32示出了扩展器264用来变换面部模型的Z值的函数。在下文中将该函数称为Z值变换函数。
如图32所示,横坐标表示作为面部模型原始Z值的zin,其作为Z值变换函数的参数,而纵坐标表示作为Z值变换函数变换之后的Z值的zout。
根据图32的Z值变换函数,所具有的值大于等于0且小于等于z1的zin被变换成具有相同值的zout,并且所具有的值大于z1的zin被变换成大于zin的zout。例如,例如,大于z1且小于等于z2的zin被变换成大于z1且小于等于z3但仍大于zin的zout。
根据图32的Z值变换函数,如图33所示,沿Z方向(向后更深)扩展了图31的面部模型。
以与图31中类似的方式,图33示出了通过根据图32的Z值变换函数沿Z方向扩展图31的面部模型而获得的面部模型。
根据图32的Z值变换函数,变换了图31的面部模型的Z值。例如,大于等于0但小于等于z1的Z值被变换成相同的Z值,并且高于z1的Z值被变换成大于所输入的Z值的Z值。
在图31的面部模型中,大于z1且小于等于z2的Z值被变换成大于z1且小于等于z3但仍大于所输入的Z值的Z值。结果,图31的Z值原始取值范围从0到z2的面部模型的Z值被变换成了图33的其Z值取值范围从0到z3的面部模型。
图34A~34C和图35A~35D示意性地图示了从上方观察的在面部图像中拍摄的人(物体),以及从面部图像生成的面部模型。
如图34A和35A中所示,面部是正面拍摄的,面部图像仅覆盖从前面观察的面部部分。面部图像和从面部图像得到的规范化面部图像都未示出任何无法从前面观察到的部分,例如面部的侧面部分和头顶部分。
如图34B和图35B所示,适应于规范化面部图像的面部模型具有边缘的面部侧面部分,或者边缘的面部深度部分。
现在基于这种面部模型来生成面部的CG动画。如果如图34C所示顺时针或逆时针稍微转动面部,则侧面部分,即面部的不存在的部分,看起来朝前,从而破坏了CG动画。
如图35C所示,最初不具有大的深度区域的面部侧面部分被沿Z方向扩展,以形成具有深度部分的面部模型。基于这种面部模型来生成面部的CG动画。即使如图35D所示顺时针或逆时针稍微转动面部,扩展了的侧面部分也防止了CG动画被破坏。
图36示出了基于侧面部分未沿Z方向扩展的面部模型而生成,并被向左顺时针稍微转动了的面部CG动画。
图37示出了基于侧面部分沿Z方向扩展的面部模型而生成,并被向左顺时针稍微转动了的面部CG动画。
如图36所示,顺时针转动不自然地破坏了面部,这是因为不存在面部模型的侧面部分。相反,如图37所示,显示了自然而真实的向左看的面部的CG动画,这是因为存在面部的侧面部分。
用来变换面部模型Z值的Z值变换函数不局限于图32所示的函数。根据本实施例,Z值变换函数是非线性函数。或者,Z值变换函数可以是线性函数。如图32所示,Z值变换函数优选地在Z值小时将其变换成与输入的Z值等值的Z值,在Z值大时将其变换成大于输入的Z值的Z值。更具体而言,面部模型中朝前的点保持位置不变,并且面部模型中深的点被移动到更深的位置。
下面参照图38至图40来描述图25的合成器265的处理。
合成器265将从颈部模型适应器262提供的颈部模型和从耳朵模型适应器263提供的耳朵模型的比面部模型更靠前的一部分与从扩展器264提供的面部模型合成起来。
图38示意性地图示了比面部模型更靠前的颈部模型部分与面部模型的合成。
如图38所示,Z方向水平对准,即与图38的纸面平行,其中左手侧是面部的前面,右手侧是面部的深度一侧。
合成器265将颈部模型每个点处的Z值与面部模型中与颈部模型中该点具有相同坐标(x,y)的相应点处的Z值相比较。如果颈部模型中该点的Z值小于面部模型中相应点处的Z值,换言之,如果颈部模型中的该点的位置比面部模型中的相应点更靠前,如图38中带箭头的线a1所示(面部模型不比颈部模型更靠前),则将颈部模型的该点与面部模型合成。
如果颈部模型中该点的Z值大于面部模型中相应点处的Z值,换言之如果颈部模型中的该点的位置比面部模型中的相应点靠后更深(相应点位于Z方向上的相同位置),如带箭头的线a2所示,则颈部模型不与面部模型合成。
类似地,合成器265将耳朵模型中位置比面部模型更靠前的一部分与面部模型合成起来。
当利用数码相机等拍摄作为物体的人时,所产生的照片中的颈部、耳朵等的图像根据个人特点(包括发型、体格、姿势),甚至相机角度的微小变化,而有较大不同。仅仅使标准面部模型适应于显示在规范化面部图像中的面部可能会得到具有不自然的颈部和耳朵的面部模型,并可能从而产生大体上不自然的面部模型。
图25的面部模型处理器252通过与面部的面部模型(没有3D耳朵和颈部的面部模型)独立地将颈部模型和耳朵模型与面部模型合成起来,产生自然的面部模型。
图39是通过使标准面部模型适应于显示在规范化面部图像中的面部而获得的面部模型的左侧视图。图40是通过将颈部模型和耳朵模型与图39的面部模型合成而获得的面部模型的左侧视图。
如图39所示,左耳不自然地变形了,并且颈部几乎不存在。图40示出了大体上自然的面部模型,其具有看起来自然的耳朵和颈部。
下面参照图41A至图46来描述图25的头发模型处理器253的处理。
头发通常位于面部轮廓外部和内部的区域中。发型在每个人之间有很大不同。头发模型处理器253独立于面部模型地生成具有3D形状的头发模型。从而,头发模型处理器253产生如下的面部模型,其头发具有与显示在规范化面部图像中的人的头发相同的发型和纹理。
头发模型处理器253中的图25的适配单元271基于来自图2的详细特征点抽取器135的详细特征点,识别出显示在规范化面部图像中的面部轮廓。响应于该面部轮廓,适配单元271在来自图2的规范化面部图像存储器133的规范化面部图像中,设定包围在头发区域轮廓中的含发区域。
头发区域轮廓包围着预期存在头发的区域。
适配单元271使存储在标准3D模型存储器251中的头发模型(在下文中称为标准头发模型)适配于规范化面部图像中的含发区域。
在含发区域中建立至少一个用于适配的适配点,在标准头发模型中建立与该适配点相对应的匹配点。适配单元271对标准头发模型执行适配处理,以使得规范化面部图像的含发区域中的适配点与标准头发模型中的匹配点一致。
图41A和图41B示出了通过使标准头发模型适配于规范化面部图像中的含发区域而获得的头发模型。
图41A是该头发模型的前视图,图41B是该头发模型的左侧视图。
如图41A和图41B所示,具有3D形状的头发模型覆盖了面部的前上方部分,从头顶向下到前额,以及到面部的侧面部分。
如图41A和图41B所示,适配单元271使头发模型适配于规范化面部图像,并将适配的头发模型提供给图25的Z值修改器273。
图25的头发模型处理器253中的非头发部分检测器272从存储在规范化面部图像存储器133中的规范化面部图像中检测非暗区域和肉色区域,作为非头发部分,并将非头发部分的信息提供给Z值修改器273。
Z值修改器273从提供自非头发部分检测器272的信息中识别出规范化面部图像中的非头发部分,并修改来自适配单元271中的头发模型中与非头发部分适配的Z值。换言之,Z值修改器273修改头发模型的Z值,以使得当头发模型与通过图25的面部模型处理器252获得的面部模型合成时,头发模型的与非头发部分适配的部分的位置比面部模型靠前。更具体而言,Z值修改器273将头发模型中与非头发部分适配的部分的Z值修改成极大的数,例如修改成无穷大。
图41A和图41B的头发模型变为如图42A和图42B所示的头发模型。
图42A和图42B示出了通过修改图41A和图41B的头发模型的与非头发部分适配的部分的Z值而获得的头发模型。
与图41A和图41B所示的一样,图42A是该头发模型的前视图,图42B是该头发模型的左侧视图。
如图42A和图42B所示,所产生的头发模型所具有的发型和纹理与显示在规范化面部图像中的人的发型和纹理相同。
图43示出了利用来自规范化面部图像的未与头发模型合成的面部模型来生成的CG。图44示出了利用与面部模型合成的头发模型来生成的CG。图45示出了从另一幅规范化面部图像产生的利用未与头发模型合成的面部模型来生成的CG。图46示出了利用与图45的面部模型合成了的头发模型来生成的CG。
如图43和图45所示,在未利用头发模型生成的CG中,头发不自然地粘在面部的表面上。相反,如图44和图46所示,在利用头发模型生成的CG中,头发具有自然的纹理。
下面参照图47的流程图来描述在图3的步骤S105中,由图2的面部模型生成器136执行的面部模型生成处理。
在步骤S251中,面部模型生成器136中的图25的面部模型处理器252中的面部模型适应器261基于从详细特征点抽取器135提供的详细特征点,使存储在标准3D模型存储器251中的标准面部模型适应于存储在规范化面部图像存储器133中的规范化面部图像中所显示的面部。从而,面部模型适应器261生成面部模型作为显示在规范化面部图像中的面部的3D模型,并将该面部模型提供给扩展器264。处理进行到步骤S252。
在步骤S252中,扩展器264扩展从面部模型适应器261提供的面部模型的侧面部分,并将所产生的面部模型提供给合成器265。处理进行到步骤S253。
在步骤S253中,颈部模型适应器262基于从详细特征点抽取器135提供的详细特征点,使存储在标准3D模型存储器251中的颈部模型适应于显示在来自规范化面部图像存储器133的规范化面部图像中的颈部。从而,面部模型处理器252生成颈部模型作为显示在规范化面部图像中的颈部的3D模型,并将所产生的颈部模型提供给合成器265。处理进行到步骤S254。
在步骤S254中,耳朵模型适应器263基于从详细特征点抽取器135提供的详细特征点,使存储在标准3D模型存储器251中的耳朵模型适应于显示在来自规范化面部图像存储器133的规范化面部图像中的左耳和右耳。耳朵模型适应器263生成耳朵模型作为显示在规范化面部图像中的耳朵的3D模型,并将所产生的耳朵模型提供给合成器265。处理进行到步骤S255。
在步骤S255中,合成器265将从颈部模型适应器262提供的颈部模型和从耳朵模型适应器263提供的耳朵模型中位置比面部模型更靠前的部分与从扩展器264提供的面部模型合成起来。然后,合成器265将合成的面部模型提供给合成器254。处理返回。
下面参照图48的流程图来描述在步骤S106中由图2的面部模型生成器136执行的生成头发模型的面部模型合成处理。
在步骤S271中,面部模型生成器136中的图25的头发模型处理器253中的适配单元271基于从详细特征点抽取器135提供的详细特征点,在存储于图2的规范化面部图像存储器133中的规范化面部图像中设定含发区域。从而,适配单元271识别出头发区域轮廓所包围的含发区域。处理进行到步骤S272。
在步骤S272中,适配单元271使存储在标准3D模型存储器251中的标准头发模型适配于规范化面部图像中的含发区域,并将适配的头发模型提供给Z值修改器273。处理进行到步骤S273。
在步骤S273中,非头发部分检测器272从存储在规范化面部图像存储器133中的规范化面部图像中检测非头发部分,并将关于非头发部分的信息提供给Z值修改器273。处理进行到步骤S274。
在步骤S274中,Z值修改器273从提供自非头发部分检测器272的信息中识别出规范化面部图像中的非头发部分。Z值修改器273检测从适配单元271提供的头发模型的与非头发部分适配的部分,并修改与非头发部分适配的部分的Z值。Z值修改器273将修改了Z值的头发模型提供给滤波器274。处理从步骤S274进行到步骤S275。
在步骤S275中,滤波器274对来自Z值修改器273的头发模型的Z值进行低通滤波。经过Z值低通滤波,头发模型在Z方向上的急剧变化变得较平滑,并且头发模型具有了更自然的头发。滤波器274将对Z值进行了低通滤波的头发模型提供给合成器254。处理进行到步骤S276。
在步骤S276中,面部模型生成器136中的图25的合成器254将从头发模型处理器253中的滤波器274提供的、比面部模型位置更靠前的头发模型的部分,与从面部模型处理器252中的合成器265提供的面部模型合成起来。然后处理返回。
如前面参照图3的步骤S107所述,面部模型生成器136中的合成器254基于从详细特征点抽取器135提供的详细特征点,将眼睛模型和牙齿模型嵌入到已合成了头发模型的面部模型当中。合成器254将所产生的面部模型作为最终面部模型提供给图2的面部模型存储器137来存储。
嵌入面部模型中的眼睛模型的眼白中的像素值被校正到与显示在规范化面部图像中的面部中的眼睛的眼白的像素值相同,以使得其中嵌入了眼睛模型的面部模型不会看起来不自然。
如前面参照图3的步骤S108所述,当面部模型被存储在面部模型存储器137中时,图2的动画处理器138基于存储在面部模型存储器137中的面部模型,生成CG动画的数据,在所述CG动画中,面部的区域响应于操作单元139的操作而移动。然后,面部模型存储器137将CG动画数据提供给显示器140。显示器140显示存储单元131中所存储的面部图像中所显示的面部的CG动画,其响应于操作单元139的操作而移动。
图49~图53示出了显示在显示器140中的CG动画。
图49示出了处于与原始面部图像(即用来生成CG动画的面部模型和面部图像)相同状态的CG动画。
图50示出了眼睑合上的CG动画,图51示出了嘴张开的CG动画。图52示出了面部(颈部)转向左侧且瞳孔向左看的CG动画。
图49至图52显示出实现了逼真的CG动画。
眼睛的眨动是基于眼睛的详细特征点来执行的。嘴的张开和闭合是基于嘴的详细特征点来执行的。面部的转向是基于面部和颈部分开的详细特征点来执行的。
图2的图像处理装置容易地生成非常逼真的CG动画。
CG动画可以从单帧面部图像产生。CG动画可以从人的照片生成,所述的人可以是当前难以拍摄的人,例如演员或历史人物。可以产生这个人的视频。
用户可以操作鼠标以在面部CG动画的屏幕中点击任意点,以使面部CG动画中的视线和颈部向点击点的方向看。
响应于用户对多个按钮中任意按钮的操作,面部表情(例如眼睛和嘴的张开程度,以及视线方向)可以变化,或者面部CG动画中的颈部(面部)可以转向。
面部的CG动画可以响应于检测用户手势的传感器的信号而移动。
照相机对用户面部进行拍摄以检测面部特征点的移动,并且面部的CG动画可以以与用户特征点的移动类似的方式移动。
可以向面部的CG动画添加多种装饰和处理。例如,面部的CG动画具有任意背景。可以在CG动画上放置帽子、冠冕或头饰。可以在CG动画上放置项链、耳环和穿孔饰品之一。CG动画可以戴眼镜,例如一般的眼镜和彩色隐形眼镜。CG动画可以在面部涂上油彩。可以在CG动画上诙谐地设置汗、血管和表示面容苍白状态的符号。预先准备多种发型,并使用这些发型中的任一种来产生CG动画。诸如蝴蝶和蜜蜂之类的昆虫的CG动画可以与面部的CG动画一起显示。面部可以跟踪昆虫的移动,甚至可以吃掉昆虫。
根据上述本发明的实施例,图1的通用计算机执行建模处理,以生成面部模型,然后执行动画处理以生成逼真的CG动画。建模处理和动画处理可以由除计算机外的任意装置来执行。
摄制图像的摄像设备和显示该图像的显示器,例如蜂窝电话、数码相机、可视电话,捕获面部图像,对面部图像执行建模处理,对建模处理中所获得的面部模型执行动画处理,然后显示动画处理中所获得的CG动画。
如果诸如可视电话之类的具有通信功能的装置执行建模处理和动画处理,则该装置显示在动画处理中获得的CG动画,而非通信对方的实际图像,以执行所谓的角色通信(character communication)。
可以低成本地传送大量信息。更具体而言,当在可视电话中显示实际用户的图像时,用户的图像需要以较短的间隔传送到对方装置。在CG动画的情况下,一旦传送了CG动画的数据,则仅传送移动CG动画所需的数据就足够了。无须传送用户的当前图像,电话的对方就可以得知用户的存在。无须传送用户当前图像的用户保持了私密性,尤其是在用户不想让通信对方看见当前用户自身图像的时候。CG动画逼真到足以在其中反映用户自身的表情。人们通常迅速地得知面部表情所表达的东西。用户可以将具有某一面部表情的CG动画传送到通信对方,从而将用户所希望的信息有效且高效地传达到通信对方。利用添加到CG动画上的面部表情,执行引人注意的通信。
上述的逼真面部动画可以应用于蜂窝电话中带动画的呼叫信号和带动画的待机屏幕。蜂窝电话在接收到呼叫时显示CG动画,触发歌曲,并使CG动画看起来像是在唱歌。蜂窝电话将持有者面部的面部模型传送到通信对方的蜂窝电话,并在对方的蜂窝电话上基于该面部模型生成CG动画和显示CG动画。
面部的CG动画还可用在游戏中。例如,在角色扮演游戏中,具有用户面部的CG动画可被用作主人公的CG。在动作游戏、竞赛游戏和格斗游戏中,具有用户面部的CG动画用于用户所操作的人物的CG。
在这种情况下,用户可以对游戏中的角色有更多的感受,并更享受游戏。
建模处理中抽取详细特征点的处理被用来基于详细特征点控制游戏的进度和人物的移动。例如,可以从照相机所拍摄的面部图像中抽取用户面部的详细特征点,并响应于特征点来控制游戏进度和面部CG动画的移动。
响应于从通过利用照相机拍摄用户面部而获得的面部图像中抽取的详细特征点来控制游戏过程。在该游戏过程中,用户试着进行面部表情的改变,并运动面部的肌肉,从而获得丰富的面部表情,并导致面部肌肉的复原。
建模处理和动画处理(包括用于响应于来自按钮或其他输入设备的操作输入而移动CG动画的互动处理)可以被提供在用于开发程序的开发中间件以及其他应用软件程序中。更具体而言,用于执行建模处理和动画处理的程序可以被提供作为用在应用程序开发中的应用程序接口(API)。例如,利用API,容易执行以下处理,包括从用相机拍摄的面部图像生成面部模型、从面部模型生成CG动画、将面部表情附加到CG动画上,以及控制CG动画的移动。
面部的CG动画可以用作TV新闻节目中的虚拟新闻播音员。例如,可以使用文本语音合成来编辑新闻节目,而无需实际播出新闻的广播员。
面部的CG动画可以用作网站、装置和应用程序中提供多种服务的代理(agent)。更具体而言,面部CG动画用作在公司网站中作为接待员而工作的代理。面部CG动画可以用作对网站内容进行导游的代理、在线购物网站中介绍商业产品的代理,以及在个人网页中介绍个人的代理。面部CG动画可以用作显示和呈现具有显示功能的装置的功能的代理。安装在计算机中的面部CG动画用作在该计算机中运行的应用程序中提供帮助响应的代理。
用户所熟悉的人(包括祖父、祖母、孙子、名人等等)的CG动画可被建立成代理。从而建立了使生活更愉快的熟悉的界面。
面部CG动画可以用作在虚拟空间中表示用户个性的化身。如果在虚拟空间中可以使用聊天功能,则作为化身的CG动画可以显示在聊天对方的装置上以用于谈话。
预先准备多种发型。使用这些发型中的任一种来生成并显示CG动画。例如,在美容院中实际理发之前,可以检查理发后期望的发型。
通过从预先准备的多种CG眼镜中选择CG眼镜,并将所选择的CG添加到面部CG动画上,用户可以在实际戴上眼镜之前检查用户自己戴着眼镜的面部。
当通用计算机捕获数码相机所拍摄的面部图像,并从该面部图像生成CG动画时,可以产生CG动画的相册。例如,在计算机中存储了多种故事的模板(故事模板)。用户自身的面部图像或朋友的图像被粘到故事模板上。从而立即产生了短的CG动画文件。一家人的面部图像可以被粘到故事模板上,以制作CG动画家庭剧。
CG动画可以与动物、昆虫、非生物等的另一图像合成起来,以产生视频。
根据本发明的实施例,从人的面部生成3D模型,并进一步从3D模型生成CG动画。3D模型的生成和CG动画的生成可以对动物面部和其他物体执行。
根据本发明的实施例,从一帧面部图像生成面部模型。面部模型可以从多帧图像生成。
本领域技术人员应当理解,在所附权利要求及其等同物的范围内,根据设计需求和其他因素,可以进行多种修改、组合、子组合和变更。