在单目脸部跟踪中使用数据驱动模型的方法和系统的制作方法

文档序号:6356905阅读:227来源:国知局
专利名称:在单目脸部跟踪中使用数据驱动模型的方法和系统的制作方法
技术领域
本发明一般地涉及图像处理的领域。更具体地,本发明涉及在单目脸部跟踪(monocular face tracking)中使用数据驱动模型的方法和系统。
背景技术
单目脸部跟踪是基于由固定摄像机所得到的单目图像序列来估计脸部运动、位置和形状的过程。单目脸部跟踪是如电视会议系统等的许多图像处理系统的主要过程。例如,在电视会议系统中,通过估计脸部的运动和位置,需要交换或处理的脸部数据或信息总量就减少了。换言之,可以交换或处理与要估计的脸部运动、位置和形状相关的参数来输出一个图像序列,来代替交换或处理大量的图像数据。
一种脸部跟踪系统是基于标识的脸部跟踪系统(“标识脸部跟踪系统”)。在标识脸部跟踪系统中,要求用户在已知的位置戴上彩色的“标识”。于是这些标识的运动被参数化以估计脸部的位置和形状。标识脸部跟踪系统的一个缺点就是对用户的干扰。具体地说,用户必须在脸部的不同位置放置许多彩色标识。另外,用户要花时间来戴标识,这让使用这样的系统更加复杂。
另一种脸部跟踪系统是基于模型的脸部跟踪系统。基于模型的脸部跟踪系统使用参数化的脸部形状模型,该模型可用来估计脸部位置和运动。在现有的基于模型的脸部跟踪系统中,参数化模型用手工过程来构建,例如,通过使用3D扫描仪或计算机辅助设计(CAD)建模器。因此,现有的基于模型的脸部跟踪系统的一个缺点就是脸部形状模型的手工构建十分特定,这导致要用试错法得到跟踪模型。这样一种特定过程提供的是不精确和次优的模型。


本发明通过附图用示例而非限制的方式来说明,其中相似的标记指示类似的部件,其中图1图示了一个实施本发明的示例的计算系统;图2图示了根据一个实施例使用数据驱动模型来进行单目跟踪的操作的流程图;图3图示了为构建图2中的数据驱动模型的示例的用于立体跟踪的立体输入图像序列;图4图示了从立体输入序列所学习的示例的变形的四维空间;图5图示了用于单目跟踪的示例的输入图像序列;图6图示了根据一个实施例进行图2中的立体跟踪的操作的流程图;图7图示了根据一个实施例计算图2中的主形状向量的操作的流程图;以及图8图示了根据一个实施例进行图2中的单目跟踪的流程图。
具体实施例方式
下面描述一种在单目脸部跟踪中使用数据驱动模型的方法和系统,其提供了一种在用单个摄像机得到的图像序列中跟踪三维(3D)物体,如脸部的通用的系统。在一个实施例中,得到了基于输入图像序列的立体数据(stereo data)。用所得到的立体数据构建了3D模型。用所构建的3D模型跟踪单目图像序列。在一个实施例中,主元分析(PCA)被应用到所述立体数据上来学习例如可能的脸部变形,并构建数据驱动3D模型(“3D脸部模型”)。所述3D脸部模型将一般的形状(例如脸部姿势)作为基于PCA分析的形状基向量的线性组合来近似。
通过使用真实的立体,可以计算出少量的形状基向量来构建3D模型,这提供了很多好处。例如,只用少量的(例如3或4个)形状基向量就可以生成多种面部表情,如笑、说话和抬眉毛等等。另外,可以用一个或多个用户的立体数据构建一个3D模型并存储在数据库中,即使一个新用户的立体数据并未存储在所述数据库中也可以在其中跟踪例如所述新用户的脸。
此外,通过使用基于输入图像序列的立体数据构建3D模型,就可以不使用干扰性的标识而做到对姿势和脸部变形的单目脸部跟踪。本文描述的3D脸部模型为对单个图像序列同时跟踪姿势和脸部变形(“单目跟踪”)提供了低复杂度的可变模型。
以下实施例描述了一个不使用干扰性标识的,跟踪单个摄像机前的3D姿势和脸部图像的形状(“脸部”)的系统。所述系统还提供了使用数据驱动模型的鲁棒的和精确的单目跟踪。另外,所述系统还提供了普适化的特性,使得可以用同样的3D模型来对多人进行脸部跟踪。
在以下描述中,单目跟踪技术是对于3D脸部图像的跟踪来描述的。但是,本文描述的单目跟踪技术并不限于任何具体类型的图像,还可以对其他类型的3D图像实施,例如运动的人体部分或无生命物体。
一般概述示例的计算系统图1图示了一个实施本发明的示例的计算系统100。本文描述的3D模型构建技术和单目跟踪技术可由计算系统100实施和利用。计算系统100可代表,例如,通用的计算机、工作站、便携式计算机、手持式计算设备或其他类似的计算设备。计算系统100的部件是示例性的,其中可以去掉或添加一个或多个部件。例如,可在计算系统100中使用多个摄像设备128。
参照图1,计算系统100包括主单元110,该主单元110具有通过总线101耦合到显示电路105、主存储器104、静态存储器106和闪存107的中央处理单元(CPU)102和协处理器103。计算系统100的主单元110还可以通过总线101耦合到显示器121、键盘输入122、光标控制123、硬拷贝设备124、输入/输出(I/O)设备125、海量存储设备126以及摄像设备128。
总线101是传递信息和信号的标准系统总线。CPU 102和协处理器103是计算系统100的处理单元。CPU 102或协处理器103,或两者都可用来为计算系统100处理信息和/或信号。CPU 102可用来处理代码或指令来完成本文描述的3D数据驱动模型构建技术和单目跟踪技术。作为替换,协处理器103可用来处理代码或指令来完成和CPU 102一样的技术。CPU102包括控制单元131、算术逻辑单元(ALU)132和若干寄存器133,它们可由CPU 102用作数据和信息处理的目的。协处理器103也可以包括和CPU 102类似的部件。
主存储器104可以是例如随机存取存储器(RAM)或其他动态存储设备,来存储计算系统100要用的数据、代码或指令。在一个实施例中,主存储器104可以存储与输入立体图像序列和/或下面将进一步详细描述的3D数据驱动模型相关的数据。主存储器104还可存储在CPU 102或协处理器103执行代码或指令过程中的临时变量或其他中间数据。静态存储器106可以是例如只读存储器(ROM)和/或其他静态存储设备,该存储器能存储计算系统100要用的数据和/或代码或指令。闪存107是可以用来为计算系统100存储基本输入/输出系统(BIOS)代码或指令的存储设备。
显示器121可以是例如阴极射线管(CRT)或液晶显示器(LCD)。显示设备121能向用户显示图像、信息或图片。计算系统100的主单元110能通过显示电路105和显示器121接口。键盘输入122是为计算系统100传递信息和命令选择的字母数字式的输入设备。光标控制123可以是例如鼠标、触摸板、轨迹球或光标方向键,来在显示器121上控制目标移动。硬拷贝设备124可以是例如激光打印机,来在纸、胶片或其他类似媒体上打印信息。许多输入/输出(I/O)设备125可耦合到计算系统100上。例如,如扬声器这样的I/O设备可连接到计算系统100上。海量存储设备126可以是,例如,硬盘、可读写CD或DVD播放机或其他大容量存储设备。摄像设备128可以是能用于本文描述的图像处理技术的视频图像捕捉设备。在一个实施例中,摄像设备128包括DigiclopsTM摄像系统,该系统提供了大小为640×480的彩色图像时4帧/秒(fps)的平均帧速。
在一个实施例中,本文描述的3D数据驱动模型构建技术和单目跟踪技术可被包含在计算系统100中的硬件和/或软件模块来完成。例如,CPU102或协处理器103能执行存储在机器可读媒体,例如主存储器104或静态存储器106中的代码或指令,来处理立体输入序列以构建本文描述的3D数据驱动模型。另外,CPU 102或协处理器103能执行代码或指令来使用本文描述的3D数据驱动模型跟踪单目输入图像。
机器可读媒体可以包括以例如计算机或数字处理设备的机器的可读形式,提供(即存储和/或传输)信息的装置。例如,机器可读媒体可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光存储媒体、闪存设备或其他类似存储设备。代码或指令能用载波信号、红外信号、数字信号和其他类似信号表示。机器可读媒体也可用来存储本文描述的3D数据驱动模型的数据库。另外,可用一个或多个机器可读媒体来存储所述3D模型。
基本操作图2图示了根据一个实施例使用数据驱动模型来进行单目跟踪的操作200的功能流程图。参照图2,操作200包括两个阶段。第一个阶段是指操作块210或学习阶段210。学习阶段210通过在真实立体跟踪数据上应用主元分析(PCA)处理来学习可能的脸部变形空间,为单目跟踪构建3D数据驱动模型。所述3D数据驱动模型可用来将一般形状作为形状基向量的线性组合来近似。第二阶段是指操作块220,其中使用在所述学习阶段构建的3D数据驱动模型来进行单目跟踪。通过使用所述3D数据驱动模型,由单目或单个图像序列能同时跟踪例如脸部的图像的姿势和变形。操作200最初从学习阶段210开始。
在学习阶段210中,在操作块202处,立体序列被输入。例如,摄像设备128可包括第一摄像机和第二摄像机,来从左视角和右视角捕捉图像序列,如图3所示。如图3所示,第一和第二摄像机能从左视角和右视角捕捉一个人展现变化的脸部运动和姿势的图像序列,例如帧1到100。立体输入序列能被输入计算系统100来处理。
在操作块204中,输入的立体序列被跟踪。具体地说,低复杂度的脸部网格(例如,如图3所示的在脸部不同位置的十九个点)被初始化,随后用标准的光学流技术跟踪。为了处理脸部的非刚性变形,每个点被独立地跟踪以得到脸部形状轨迹。
在操作块206中,对从被跟踪的输入立体序列得到的形状轨迹开始应用主元分析(PCA)处理。PCA是用来对嵌入在高维空间中的数据的低维表示进行最优估计的数学过程。PCA处理用于得到在单目跟踪中使用的紧凑可变3D形状模型(“3D形状模型”)的主形状向量。
在操作块208中,主形状向量被计算,这将在下面进一步详细解释。一旦主形状向量被计算出来,在单目跟踪过程中的任何脸部运动或姿势就能用主形状向量的线性组合来近似。
在操作220(第二阶段)中,用计算模型可对单目输入序列进行单目跟踪。单目序列是由单个摄像机得到的图像序列。例如,如图5所示,在单目输入序列中的各帧(例如,帧1到72)中,脸部的形状可以用在学习阶段210构建的计算模型的主形状向量的线性组合来近似。具体地说,当一个人改变脸部表情和姿势时,所产生的序列的光学流信息可和计算模型一起用来跟踪姿势和脸部表情的改变。
以上操作可在示例的计算系统100中实施。例如,CPU 102可执行代码或指令来构建3D模型和进行PCA处理,这将在下面进一步详细描述。数据驱动3D模型也可存储在计算系统100的存储设备中。在一个实施例中,数据驱动3D模型是“可变脸部模型”,现在来描述该模型。
可变脸部模型以下说明描述了基于立体跟踪数据创建可变脸部模型和单目跟踪可变脸部模型所需的参数化。例如,参照图5,用本文描述的可变脸部模型可在3D空间中跟踪单目脸部序列。
开始时,设In是单目脸部序列的第n帧图像,该序列如图5所示有72帧。时间n时的每一帧的每张脸的3D结构可用N个点Pni(i=1,...,N)的集合来表示。为进行单目跟踪,需要定义脸部参考帧和摄像机参考帧的坐标向量。具体地说,设Xi(n)和Xci(n)=[Xci(n)Yci(n)Zci(n)]T]]>分别是脸部参考帧和摄像机参考帧中点Pni的坐标向量。
然后向量Xi(n)和Xci(n)通过刚体变换互相关联,表征出在时间n时用户脸部相对摄像机的姿势,即Xci(n)=RnXi(n)+tn,]]>其中Rn是3×3的旋转矩阵,tn是平移向量。为将如图5所示的每一帧中的每张脸作为非刚性的物体跟踪,对形状必须估计Xi(n)的量,对姿势必须估计Rn和tn的量。因为Rn是旋转矩阵,Rn可唯一地参数化为一个三维向量 即所谓的旋转向量。由标准公式可将旋转矩阵和旋转向量相互关联。
图像In,n=1,2,...,M(例如,帧1到72)中的数据可用于估计每一帧中的每张脸的形状和姿势。具体地说,设Pni是Pni在图像In上的投影,并设xni是Pni的图像坐标向量。这样,在一个实施例中,可用一个传统的针孔摄像机模型来确定Pni的投影的图像坐标向量xni,即 这样单目跟踪就等价于为还原3D形状Xi(n)和姿势 而对投影映射π的取逆。
在一个实施例中,为对非刚性形状,例如变化的脸部表情和姿势,进行单目跟踪,非刚性形状可以是基于刚性形状的线性组合。通过将非刚性形状作为基于刚性形状的线性组合,对变化的形状和姿势可以避免处理无数的图像投影点。这样,在序列中的任意时间n,形状坐标向量Xi(n)可以是平均形状向量Xoi和少数几个已知的形状向量Xki(k=1,...,p)之和,这些形状向量Xki是主形状基向量,如下面的等式1所示Xi(n)=Xoi+Σk=1pαnkXki,]]>等式1在等式1中,p<<3N,p个系数αnk代表考虑到3D形状的非刚性的实体。如果p=0,则脸部形状Xi(n)变成刚性形状Xoi。于是,“p”指“变形空间的维数”。图像投影映射可简化为姿势参数 和tn以及变形向量 的函数,该变形向量 具有多个“变形系数”,例如αn‾=[αn1αn2...αnp]T.]]>这样图像投影映射可以用下面所示等式2来计算 等式2于是,通过将光学流约束(例如Lucas-Kanade)和由等式1表示的可变模型的特定形式结合起来,可以执行单目跟踪程序来同时估计每一帧的变形向量 和姿势参数 和tn。单目跟踪程序在下面进一步详细讨论。
在执行单目跟踪程序之前,必须计算等式1的主形状基向量“Xki”,这在如图2所示的学习阶段210中进行。通过使用主形状基向量Xki,数据驱动模型可用来避免对非刚性模型的手工构造。主形状基向量从真实的3D跟踪数据中获得,这也在如图2所示的学习阶段210中进行。具体地说,已校准的立体摄像机用来跟踪3D变化的脸部表情和姿势。例如,可以使用将近100到150帧的短的立体输入序列(例如,如图3所示)。
因此,主形状基向量Xki可从在图2中的操作块202和204的被跟踪序列,用主元分析(PCA)处理来计算,这将在下面详细描述。操作块202和204的处理为形状变形分析提供了捕捉3D轨迹数据所必须的立体跟踪。
立体跟踪图6图示了根据一个实施例进行立体跟踪的图2的操作204的流程图。操作204最初在操作块602处开始。
在操作块602中,在左摄像机图像和右摄像机图像上的点集被初始化。在一个实施例中,如图2所示,位于眼睛(2)、鼻子(3)、嘴(8)和眉毛(6)的N=19个点Pi的集合在左摄像机图像和右摄像机图像上被初始化。在这个操作中,独立地从姿势中提供变化的脸部变形,即用户在做多个不同脸部表情,例如张开/合上嘴巴、笑、抬眉毛等等的时候,在整个序列中尽可能固定地保持头部姿势。在一个实施例中,点集由计算系统100的用户在第一、左和右摄像机图像上指出。这样,立体图像序列可用这些点来跟踪。
应该注意不需要所有的点落在图像的纹理化区域内。这是对独立特征点跟踪(表明一个点适合跟踪)的要求,而非对基于模型的跟踪的要求。例如,在鼻尖处的点落在一个完全没有纹理化的区域内,而嘴的轮廓和眉毛上的点是边缘特征。所有这些点用传统的光学流技术将无法单个跟踪。
在操作块604中,点集用立体三角来跟踪。立体跟踪在3D中进行,使得每个点的位置Xci(n)(在左摄像机参考帧中)都被更新,以使其当前的左图像和右图像投影都和先前的图像投影近似匹配(即瞬时跟踪)。
图像匹配成本(Image Matching Costs)在一个实施例中,为在整个立体跟踪中保持立体的一致性,通过考虑一个在左图像和右图像之间测量的成本函数(cost function)来近似匹配左图像和右图像投影。具体地说,通过最小化如以下等式3所示的成本函数Ei来建立从帧n-1到帧n对点Pi的立体跟踪。
等式3在等式3中,InL和InR指在时间n时左图像和右图像的向量,xLi(n)和xRi(n)指Pi的左图像和右图像投影的坐标向量。Ei的求和是对围绕着图像点的所谓感兴趣区(ROI)进行的。等式3的第一和第二项表示独立的左右瞬时跟踪的传统图像匹配成本计算项。第三项用来在左图像和右图像之间保持一致性。这三项中的三个系数(γ1,γ2和γ3)是固定的权重系数(即,对所有点都一样),用于这三项之间的不同的可信度。
计算权重系数在一个实施例中,γ3系数的值保持小于γ1系数和γ2系数,而且比值γ1/γ3和γ2/γ3一般保持在20。可以对如图2所示的脸部网格上的19个点中的每一个分别直接给定(hardcode)γ1、γ2和γ3系数的值。在一个实施例中,在脸部网格中的每对连接的点被分别考虑。对有将近100个象素的平均图像面积,γ1、γ2和γ3的值可分别是1、1和0.05。
最小化能量函数如果应用到所有的网格点,这三个权重系数能用来最小化全局能量函数Ei(n)=Σi=1NEi(n).]]>在全局能量函数的这种形式中,对短序列(例如,直到20至30帧)的立体跟踪很成功。对更大的立体序列,可以在成本函数Ei(n)中加入调节项,来在立体序列的过程中总体上平滑地变形时,允许整个3D结构维持其完整性。这样总的能量成本函数E(n)就变成E(n)=Ei(n)+ET(n)+ES(n)+EA(n)。
ET(n)项是瞬时平滑项,用来最小化每个点的3D速度幅值。ES(n)项是形状平滑项,用来最小化相邻点的速度差。这一项通过轻微地迫使相邻点靠拢来保证模型的完整性。EA(n)项是人体测量能量成本项,用来保持线段长度尽可能地接近在第一帧中所计算出的值,并防止在长的跟踪序列中的漂移。这三个调节项的公式如下ET(n)=Σi=1Nρi||dXi(n)||2]]>ES(n)=Σi,jβij||dXi(n)-dXj(n)||2]]> 其中dXi(n)=Xci(n)-Xci(n-1),]]>正的系数ρi、βij和δij对不同的点和不同的边都不同。在一个实施例中,所有伸展较大的线段[Pi;Pj]被赋予较小的βij和δij值。在另一个实施例中,在脸部的高变形区域的点Pi被赋予小的ρi。在一个实施例中,已知是相当刚性的点和线段将被赋予较大的ρi、βij和δij值以加重惩罚加于其上的任何运动和伸展。例如,在嘴轮廓上的点和边将比属于鼻子和眼睛的点和边有更小的系数。在一个实施例中,对有将近100个象素的平均图像特征片,ρi、βij和δij的值将近20000、20000和100。
3D形状轨迹最小化总能量函数E(n)的解形状Xci(n),i=1,...,N可用梯度下降来计算。也就是将E(n)对所有微分形状坐标向量dXi(n)的导数置零,即E(n)/Xi(n)=0在对雅可比矩阵求导之后,形状跟踪的解简化成一个线性方程dX=D-1e,其中dX是由所有N个向量dXi(n)组成的3N×1的列向量,D和e分别是3N×3N的矩阵和3N×1的向量。一旦dX被算出来,形状Xci(n)就知道了。对整个立体序列重复同样的过程,最后得到完整3D形状轨迹。
主形状向量计算图7图示了根据一个实施例计算主形状向量的图2的操作208的流程图。操作208最初在操作块702处开始。
在操作702中,计算平均形状Xoi。具体地说,立体跟踪的结果是左摄像机参考帧中每个点Pi的3D轨迹Xci(n)=[Xci(n)Yci(n)Zci(n)]T,]]>对n=1...,M,其中M是序列中帧的数目。P+1个形状基向量Xki用奇异值分解(SVD)来计算。首先,平均形状Xoi如下计算Xoi=1MΣn=1MXci(n).]]>在操作704中,从整个轨迹中减去平均形状XoiXci(n)=Xci(n)-Xoi.]]>所得到的形状轨迹Xi(n)随后存储在3N×M的矩阵(“M”)中。
在操作块706中,对M做奇异值分解(SVD)。具体地说,对M应用SVD,得到结果M=USVT,其中U=[u1u2... u3N],V=[v1v2...vM]。U和V是两个3N×3N和M×M的酉矩阵,S=diag(σ1,...,σ3N)是正的且单调增的奇异值σk的对角矩阵。经过该分解,M现在变成M=Σk=13NσkUkvkT.]]>在操作708中,M的求和被从3N截断到p项,这得到给定固定的一组p个向量时矩阵M的最优最小二乘法近似。这等价于用矩阵M在由头p个向量u1,...,up生成的线性子空间上的正交投影来近似矩阵M的每一列(即序列中的每个3D形状)。这些向量正是剩下的p个变形形状向量Xki对k=1,...,p,uk=xk1xk2···xkN.]]>所生成的主形状向量的模型适合于单目跟踪阶段。例如,如果一个用户做出了多个脸部表情,这些脸部表情可以基于在学习阶段210期间已展示给系统的脸部表情来跟踪。应该注意,因为向量uk是幺正的,等式1和2中出现的形状系数αnk是以平均形状Xoi为单位的。在一个实施例中,单位是厘米并用4个主形状向量来涵盖大多数常见的脸部表情(例如,嘴和眉毛的运动)。然而,所使用的主形状向量的数目可基于用于跟踪的脸部表情的不同而变化。
回到图4,图示了从变形411到414的四维空间,其中变形是由如图3所示的立体序列计算的。如图4所示,主形状向量可相应于四个主要脸部运动的组合,例如,笑、张开/合拢嘴和抬左右眉毛。
单目跟踪图8图示了根据一个实施例用学习阶段210中的计算模型来进行单目跟踪的图2的操作220的流程图。操作220最初从对例如图5所示的图像序列的操作块802开始。
在操作802中,使用图像测量来从图像序列估计形状和姿势的参数。具体地说,给定两个连续的帧,例如帧1和2,就可用光学流跟踪技术来计算图像中每个点的平移距离。然后就可独立处理每个图像点了。这里,对基于模型的跟踪,模型中的所有点通过等式1给出的参数化3D模型而互相联系。于是,由图像测量就可同时全部估计定义3D模型配置的参数。这些参数包括形状参数 和姿势参数 在操作804中,使用最符合随后的帧的脸部模型来搜索最优的形状和姿势。例如,假定已经从序列的第一帧I1到第n-1帧In-1跟踪脸部模型了。于是目标就是找到最符合随后帧In的脸部模型最佳的姿势 和变形 来进行单目跟踪。以下说明描述了如何找到单目跟踪最优的姿势和变形。
利用对成本函数Cn的最小化,来找到最优的姿势和变形,其中最小化是通过以下跟踪解方程4和5实现的 等式4 等式5其中πi是等式2中定义的基于模型的图像投影映射。等式4的求和是在小的象素点窗口例如感兴趣区(ROI)上,围绕每个图像点xni、xn-1i和x1i进行的。
在一个实施例中,等式4中的第一项是标准匹配成本项,即第一项测量两个相继图像在模型点上的整个图像不匹配。但是,第二项测量当前图像In和第一个图像I1之间的图像不匹配。这个附加项微弱的迫使每个脸部特征在从序列的开始到结束的图像上看上去一样(在图像相邻的意义上)。照此,这避免了跟踪漂移并增强了鲁棒性。这称作漂移监视能量项。
这两个能量项用标量变量“e”来相对加权。在一个实施例中,变量e=0.2,这是为了相对监视成本来强调跟踪成本。于是,跟踪就等价于估计最优姿势和变形更新向量 dt=·tn-tn-1]]>和dα‾=·α‾n-α‾n-1.]]>这通过将Cn对 dt和dα的导数置零来得到∂Cn∂s=0,]]>其中 等式6接着假定两个相继帧间运动较小,将等式6对“s”求解。设In是如下定义的扩展瞬时导数In(xn-1i)=In(xn-1i)]]>-((1-ϵ)In-1(xn-1i)+ϵI1(x1i))]]>等式7扩展瞬时导数函数In实际上是在点xn-1i的相邻区域求值的。注意到如果ε=0,等式7简化成真正的瞬时差In=In-In-1。如果ε>0,前一图像In-1上的图像修正被和第一帧平均,即等式7的第二行。所得到的修正用作下一图像In的参考。这个过程有效地帮助单目跟踪操作在第一个图像上选择了特征时“记住”该特征的原始样子,由此提高了鲁棒性并减小了漂移。
接着,设Ixi是图像In在xn-1i相邻区域内的x和y图像导数(图像梯度)Ixi=∂In∂x=[∂In∂x∂In∂x].]]>设Ii是当s=0时在xn-1i相邻区域内图像亮度In相对s的导数▿Ii=∂Ii∂s=∂In∂x∂πi∂x=Ixi∂πi∂s.]]>因为Ixi和 的大小分别是1×2和2×(p+6),所得到矩阵Ii的大小是1×(p+6)。于是满足等式6的最优形状和姿势更新向量“s”是s=-G-1b,等式8
其中(p+6)×(p+6)的矩阵G和(p+6)×1的向量b由下式给出G=Σi=1NΣROI▿IiT▿Ii,]]>b=Σi=1NΣROIIn▿IiT.]]>这里,虽然每个图像点以其原始形式被单个处理,但只有唯一的一个跟踪解“s”同时对整个模型计算出来。一个由真实数据构建并用极少几个系数参数化的3D模型被用于跟踪。为让s是可计算的,矩阵G的秩必须是p+6。粗略的,3D模型中的每个点引入零个、一个或两个标量观测约束,这取决于其是否落在图像中的非纹理化区域、边界区域或完全纹理化区域。在一个实施例中,从所有点集合的约束的总数就必须大于或等于p+6=10,以使3D模型适于跟踪。
一旦“s”计算出来,时间帧n时的姿势和变形就知道了。在一个实施例中,为使估计精确,同样的程序可在固定的时间帧n被重复多次(例如,4次或5次)。然后对随后的帧重复同样的整个处理。在一个实施例中,3D模型参数的初始化是通过首先在第一个图像I1上定位N=19个脸部特征而手工完成的。然后对计算初始的姿势和变形参数 进行小的优化,以使模型的图像投影和手工选择的点匹配。
应该注意每个模型点的感兴趣区(ROI)在整个序列中并不保持不变。相反,在每一帧都要基于空间中的点的距离(深度)和方向(局部表面的法向)来计算其大小和几何形状。所得到的感兴趣区是如图5所示的小的平行四边形。具体地说,背对摄像机的点认为是“不可见”的,并分配给它们大小为零的感兴趣区,因此它们对跟踪更新不作贡献。
因此,已描述了一种方法和分两阶段的系统,用于对单目图像序列中例如脸部的姿势和变形的3D跟踪,并且不使用干扰性的特殊标识。所述系统的第一阶段,通过对真实立体跟踪数据应用主元分析,学习所有可能的脸部变形的空间。所得到的模型将任意的一般形状作为形状基向量的线性组合来近似。所述系统的第二阶段使用这个低复杂度的可变的模型,来从单个图像序列同时估计脸部的姿势和变形。这一阶段称为基于模型的单目跟踪。
构造模型的数据驱动方法适合于对非刚性对象的3D跟踪,并相对使用3D扫描仪或CAD建模器来手工构造模型的任务,提供了一种极好和实用的替代方法。此外,从真实数据来创建模型允许用比手工模型更少的参数来跟踪很多种的脸部变形,并使得鲁棒性增强和跟踪精度提高。另外,所述系统展现出非常有前途的普适化的特性,使得可以用同样的3D模型来对多人跟踪,这构成较大多数其他对每个要跟踪的用户需要不同的模型的脸部跟踪系统的一个主要进步。
在以上说明中,本发明已经参照其特定的示例的实施例进行了描述。但是,很显然可以对其做不同的修改和变化,而不背离所附的权利要求中所提出的关于本发明的更宽的精神和范围。相应的,说明书和附图应在解释而非限定的意义上被考虑。
权利要求
1.一种图像处理的方法,包括基于输入图像序列得到立体数据;用所得到的立体数据构建三维模型;以及用所构建的三维模型跟踪单目图像序列。
2.根据权利要求1所述的方法,其中,得到所述立体数据包括基于变化的脸部表情的输入图像序列来得到立体数据。
3.根据权利要求1所述的方法,其中,构建所述三维模型包括用主元分析来处理所得到的立体数据。
4.根据权利要求3所述的方法,其中,用主元分析所处理的立体数据允许三维模型将一般形状作为形状基向量的线性组合来近似。
5.根据权利要求1所述的方法,其中,所述单目图像序列的跟踪包括用所构建的三维模型来跟踪脸部变形的单目图像序列。
6.一种计算系统,包括输入单元,用于基于输入图像序列得到立体数据;以及处理单元,用于用所得到的立体数据构建三维模型并用所构建的三维模型跟踪单目图像序列。
7.根据权利要求6所述的计算系统,其中,所述输入单元基于变化的脸部表情的输入图像序列来得到立体数据。
8.根据权利要求6所述的计算系统,其中,所述处理器用主元分析来处理所得到的立体数据。
9.根据权利要求6所述的计算系统,其中,所述处理器基于主元分析所处理的立体数据,将一般形状作为形状基向量的线性组合来近似。
10.根据权利要求6所述的计算系统,其中,所述处理器用所构建的三维模型来跟踪脸部变形的单目图像序列。
11.一种提供指令的机器可读媒体,所述指令如果被处理器执行,则使所述处理器执行的操作包括基于输入图像序列得到立体数据;用所得到的立体数据构建三维模型;以及用所构建的三维模型跟踪单目图像序列。
12.根据权利要求11所述的机器可读媒体,还提供指令,所述指令如果被处理器执行,则使所述处理器执行的操作包括基于变化的脸部表情的输入图像序列来得到立体数据。
13.根据权利要求11所述的机器可读媒体,还提供指令,所述指令如果被处理器执行,则使所述处理器执行的操作包括用主元分析来处理所得到的立体数据。
14.根据权利要求11所述的机器可读媒体,还提供指令,所述指令如果被处理器执行,则使所述处理器执行的操作包括基于用主元分析所处理的立体数据,将一般形状作为形状基向量的线性组合来近似。
15.根据权利要求11所述的机器可读媒体,还提供指令,所述指令如果被处理器执行,则使所述处理器执行的操作包括用所构建的三维模型来跟踪脸部变形的单目图像序列。
全文摘要
本发明公开了一种在单目脸部跟踪中使用数据驱动模型的方法和系统,为用单个摄像机跟踪三维(3D)图像,例如脸部提供了一种通用的系统。其中一种方法,得到了基于输入的图像序列的立体数据。用所得到的立体数据构建了3D模型。用所构建的3D模型跟踪单目图像序列。主元分析(PCA)可被应用到所述立体数据上以学习例如可能的脸部变形,并构建3D数据驱动模型(“3D脸部模型”)。所述3D脸部模型可以被用于将一般的形状(例如脸部姿势)作为基于PCA分析的形状基向量的线性组合来近似。
文档编号G06T17/00GK1509456SQ02809420
公开日2004年6月30日 申请日期2002年5月2日 优先权日2001年5月9日
发明者拉杰克·格热斯茹克, 让-伊夫·布盖, 萨利赫·格克蒂尔克, 格克蒂尔克, 拉杰克 格热斯茹克, 颉げ几 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1