本发明涉及计算机视觉处理技术领域,尤其涉及一种基于三维球面泰勒展开的人眼视线跟踪方法和装置。
背景技术:
人眼视线跟踪是计算机视觉与计算机图像学领域中一个重要且基础的问题,它在人机交互、虚拟现实及增强现实等领域也有非常广泛的应用。例如,在计算机视觉中,人眼在屏幕上的注视点可用于完成各种人机交互功能,其中,在增强现实感方面,视线方向可用于调整显示的内容以产生更佳的真实感。由此,正是由于眼睛能够表达人类丰富的情感,人眼视线跟踪的研究具有极高的科研和应用价值。因此,生成生动真实的人脸模型动画一直是一个重要且具有挑战性的问题。
技术实现要素:
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本发明的第一个目的在于提出一种基于三维球面泰勒展开的人眼视线跟踪方法,该方法能够结合三维眼球模型实现实时人眼视线的准确跟踪,并且,可直接将三维眼球模型转动的结果添加到人脸的跟踪结果中,增加人脸模型动画的真实感。
本发明的第二个目的在于提出一种基于三维球面泰勒展开的人眼视线跟踪装置。
为了实现上述目的,本发明第一方面实施例提出的一种基于三维球面泰勒展开的人眼视线跟踪方法,包括以下步骤:确定三维眼球模型的顶点与二维像素的对应关系;计算所述三维眼球模型的顶点的灰度值和与所述三维眼球模型的顶点对应的二维像素的灰度值;根据所述三维眼球模型的顶点的灰度值获取所述三维眼球模型的顶点的球面灰度梯度;利用差异函数与所述差异函数的三维泰勒展开形式对所述二维像素的灰度值和所述三维眼球模型的顶点的灰度梯度进行计算,获取所述三维眼球模型的旋转变化量,以使所述三维眼球模型根据所述旋转变化量转动。
本发明实施例的基于三维球面泰勒展开的人眼视线跟踪方法,利用三维眼球模型的旋转拟合人眼的二维图像,使三维眼球模型表面的灰度值与将其投影到二维图像上对应二维像素的灰度值相匹配以得到视线方向。在进行匹配降低差异时,该方法计算三维眼球模型顶点的灰度梯度,并对差异函数进行三维球面的泰勒展开求解最小值。由此,结合三维眼球模型实现实时人眼视线的准确跟踪,并且,可直接将三维眼球模型转动的结果添加到人脸的跟踪结果中,增加人脸模型动画的真实感。
为了实现上述目的,本发明第二方面实施例提出的一种基于三维球面泰勒展开的人眼视线跟踪装置,包括:确定模块,用于确定三维眼球模型的顶点与二维像素的对应关系;第一计算模块,用于计算所述三维眼球模型的顶点的灰度值和与所述三维眼球模型的顶点对应的二维像素的灰度值;获取模块,用于根据所述三维眼球模型的顶点的灰度值获取所述三维眼球模型的顶点的球面灰度梯度;第二计算模块,用于利用差异函数与所述差异函数的三维泰勒展开形式对所述二维像素的灰度值和所述三维眼球模型的顶点的灰度梯度进行计算,获取所述三维眼球模型的旋转变化量,以使所述三维眼球模型根据所述旋转变化量转动。
本发明实施例的基于三维球面泰勒展开的人眼视线跟踪装置,利用三维眼球模型的旋转拟合人眼的二维图像,使三维眼球模型表面的灰度值与将其投影到二维图像上对应二维像素的灰度值相匹配以得到视线方向。在进行匹配降低差异时,该方法计算三维眼球模型顶点的灰度梯度,并对差异函数进行三维球面的泰勒展开求解最小值。由此,结合三维眼球模型实现实时人眼视线的准确跟踪,并且,可直接将三维眼球模型转动的结果添加到人脸的跟踪结果中,增加人脸模型动画的真实感。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的基于三维球面泰勒展开的人眼视线跟踪方法的流程图;
图2是根据本发明一个具体实施例的基于三维球面泰勒展开的人眼视线跟踪方法的流程图;
图3(a)是根据本发明一个实施例的一帧二维图像的视线追踪结果示意图;
图3(b)是根据本发明一个实施例的另一帧二维图像的视线追踪结果示意图;
图4是根据本发明第一个实施例的基于三维球面泰勒展开的人眼视线跟踪装置的结构示意图;
图5是根据本发明第二个实施例的基于三维球面泰勒展开的人眼视线跟踪装置的结构示意图;以及
图6是根据本发明第三个实施例的基于三维球面泰勒展开的人眼视线跟踪装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的基于三维球面泰勒展开的人眼视线跟踪方法和装置。
具体而言,为了解决现有技术中,不能实现对人眼视线进行追踪,从而生成的人脸模型动画中,因为视线与真实人眼视线的差异性,而导致人脸模型的真实感方面的欠缺的技术问题,本发明提出的基于三维球面泰勒展开的人眼视线跟踪方法中,能够利用三维眼球模型与眼睛二维图像的对应关系跟踪视线方向,视线追踪的结果,即眼球模型跟随视线方向的转动结果,可直接添加到人脸模型中,以增加人脸模型动画的真实感。
下面结合具体的实施例对本发明的基于三维球面泰勒展开的人眼视线跟踪方法进行详细说明。
图1是根据本发明一个实施例的基于三维球面泰勒展开的人眼视线跟踪方法的流程图。
如图1所示,该基于三维球面泰勒展开的人眼视线跟踪方法包括:
s101,确定三维眼球模型的顶点与二维像素的对应关系。
具体而言,三维图像作为一种二维图像对应物体的立体图像,能够更加真实的反应物体,具有和二位图像的对应性,因而,三维眼球模型的顶点与二维像素具有对应关系。
其中,获取的相关物体的二维图像的方式,在不同的应用场景下可不同,比如,可以是输入的一段视频帧序列,从而将每一帧视频作为对应物体的二维图像。又比如,可以为一系列记录人眼活动的照片,从而将每一张照片作为对应的物体的二维图像。
需要说明的是,根据具体应用需求的不同,可采用不同的方式确定三维眼球模型的顶点与二维像素的对应关系,下面举例说明:
作为一种可能的实现的方式,将通过轮廓识别技术定位二维图像中的人脸和人眼的轮廓的位置,从而根据二维图像的轮廓位置,确定三维眼球模型的顶点与二维像素的对应关系。
作为另一种可能的实现方式,根据相机投影矩阵将三维眼球模型的顶点投影到二维图像平面上,所得的像素坐标即为对应的二维像素。
在本实施例中,由于人眼球与人脸的相对位置固定,因此当人脸跟踪的结果确定后,三维眼球模型在世界坐标系中的位置可随三维人脸模型的位置确定。从而,每一个三维眼球模型上的顶点可根据相机参数矩阵投影到相机投影平面上,其投影到的位置即为所对应的二维像素。
具体而言,三维眼球模型顶点的坐标(xv,yv,zv)t和与其对应的二维像素坐标(xp,yp)t间的投影变换关系为下公式(1)所示:
其中,在上述公式(1)中,k为3×3的相机内参矩阵,p为3×4的相机外参矩阵。
s102,计算三维眼球模型的顶点的灰度值和与三维眼球模型的顶点对应的二维像素的灰度值。
具体地,在获取三维眼球模型的顶点与二维像素的对应关系后,计算三维眼球模型的顶点与对应二维像素的灰度值。
由于本方法使用三维眼球模型拟合二维眼球图像从而跟踪真实眼球的转动,其中使用的三维眼球模型的表面灰度特征应与真实人眼相符。在真实人眼中占表面积较大的部分为巩膜,通常灰度值较高,占表面积较小的部分为虹膜与其中包含的瞳孔,通常灰度值较低。
因而,在实际执行过程中,如果三维眼球模型的第一球面坐标中天顶角的值小于预设阈值,则确定第一球面坐标的灰度值为0,如果三维眼球模型的第二球面坐标中天顶角的值不小于预设阈值,则确定第二球面坐标的灰度值为1。其中,上述预设阈值根据大量实验标定,可准确界定眼球的巩膜和其他部分。
举例而言,若用θ和
s103,根据三维眼球模型的顶点的灰度值获取三维眼球模型的顶点的球面灰度梯度。
需要说明的是,根据具体应用场景的不同,可采用多种方式根据三维眼球的顶点的灰度值获取三维眼球的顶点的球面灰度梯度。
作为一种可能的实现方式,根据三维眼球模型的顶点的灰度值,确定三维眼球模型的球面灰度值,进而,根据三维眼球模型的球面灰度值,确定三维眼球模型的顶点的球面灰度梯度,以确定在当前转动位置三维眼球模型的可见区域与二维图像的差异和优化的方向。
在本示例中,将在三维眼球模型的球面的方位角方向两侧位置的球面灰度值之差确定为三维眼球模型的顶点沿方位角的灰度梯度,将在三维眼球模型的球面的天顶角方向两侧位置的球面灰度值之差确定为三维眼球模型的顶点沿天顶角的灰度梯度。
举例而言,根据三维眼球模型的球面灰度值,本方法继而求得每个顶点沿经度和纬度两个方向的灰度梯度。以经度方向为例:首先确定如下的局部坐标系,以三维眼球模型中心为坐标原点,且三个坐标轴的方向与世界坐标系中的三个坐标轴平行,然后,计算顶点在此坐标系中的球面坐标
s104,利用差异函数与差异函数的三维泰勒展开形式对二维像素的灰度值和三维眼球模型的顶点的灰度梯度进行计算,获取三维眼球模型的旋转变化量,以使三维眼球模型根据旋转变化量转动。
可以理解,预先定义确定三维眼球模型与二维图像的差异的差异函数,并对差异函数进行泰勒展开。
进而,利用差异函数与差异函数的三维泰勒展开形式对二维像素的灰度值和眼球模型的顶点的灰度梯度进行计算,获取三维眼球模型的旋转变化量,将三维眼球模型投影到二维图像上,计算眼球模型最优的旋转位置从而使投影结果与二维图像相符。
在本发明的一个实施例中,所优化的差异函数如下公式(2)所示:
其中,公式(2)中的t为三维眼球模型表面所有的可见顶点,即其对应二维像素属于眼睛区域的所有顶点。ck为顶点k的球面灰度,
通过优化这样的差异函数,可使属于巩膜或虹膜的三维顶点与二维像素分别对应,从而使在相机视角下的三维眼球模型的渲染效果与二维眼睛图像取得一致。在确定差异函数后,本方法在每次迭代中计算使上述差异值减小的眼球模型转动方向,因此对上式中的球面灰度ck做三维球面泰勒展开,如下公式(3)所示:
其中
之后,可再通过下示公式(4)求得当前迭代中使差异函数取最小值的
进而,将眼球模型的转动位置由
为了更加清楚的描述本发明实施例的基于三维球面泰勒展开的人眼视线跟踪方法,下面结合具体的示例进行说明。
在本示例中,包含一段视频帧序列,实施例中的每一帧均使用一个已重建好的三维人脸模型作为输入,并要求三维人脸模型在世界坐标系中的位置和旋转准确。
图2是根据本发明一个具体实施例的基于三维球面泰勒展开的人眼视线跟踪方法的流程图。如图2所示,该方法包括:
s201,重建三维人脸模型,并获取二维图像。
其中,二维图像是根据输入的视频帧的一帧视频确定的。
s202,获取三维眼球模型的顶点和二维像素的对应关系。
其中,根据三维人脸模型的位置及三维眼球模型在人脸模型中的相对位置,可计算得三维眼球模型中各个顶点的世界坐标,然后使用相机投影矩阵可计算得到每个模型顶点对应的二维像素坐标。
s203,计算三维眼球顶点与对应的二维像素的灰度值。
s204,计算三维眼球模型的顶点的灰度梯度。
具体地,在计算三维眼球模型顶点的灰度值之前,应首先确定眼球模型表面的灰度值。本实施例中将眼球近似看作球体,并使用
其中,ψ=0.33,
由此,三维眼球模型顶点的灰度值可由其球面坐标的天顶角和上述定义求得。二维像素的灰度值i可直接由输入图像的灰度值决定。
进一步地,根据上述眼球模型表面灰度值
其中
因此,模型顶点沿θ和
s205,计算三维眼球模型旋转的转动变量。
具体而言,在对视频帧的每一帧进行处理时,都要进行多次的迭代处理,每一次迭代处理都会获得一个微小的三维眼球模型旋转的转动变量
为了更加清楚的说明该迭代过程,下面结合其中一次迭代处理进行说明如下:
将上述步骤中求得的三维眼球模型顶点的灰度、梯度及对应的二维像素灰度带入差异函数的三维球面泰勒展开形式中,即继续参照公式(3):
再通过以下公式(4)求得当前迭代中使差异函数取最小值的
最终将三维眼球模型的转动位置由
s206,判断迭代是否达到终止条件。
其中,终止条件可以包括迭代处理的次数等。
如果没有达到终止条件,则进入上述的步骤s202,继续对该帧视频进行迭代处理,如果达到终止条件,则进入步骤s207。
s207,获取视线方向。
具体而言,在对一帧视频的每次迭代处理后,获得一个微小的三维眼球模型旋转的转动变量,最终在到达终止条件后,将多次迭代处理后的转动变量累加得到该帧的旋转变化量,进而
使得三维眼球模型根据旋转变化量转动,以模拟出真实人眼的视线方向。
需要强调的是,为了描述的方便,上述实施例中基于三维球面泰勒展开的人眼视线跟踪方法,步骤s202到步骤s206仅仅示出了针对一帧视频的一次迭代处理流程,在实际应用中,针对每一帧图像要进行多次迭代处理,进而根据多次迭代处理后获得的微小的转动变量的叠加,获取该帧视频的三维眼球模型的旋转变化量,并以此旋转变化量控制三维眼球模型中的眼球的旋转,从而本发明实施例的基于三维球面泰勒展开的人眼视线跟踪方法,可以准确的对人眼实现进行准确的跟踪,为实现人脸模型动画的真实性具有重要意义。
举例而言,当通过t=10次迭代求得一帧视频中的视线方向时,如图3(a)和图3(b)所示的其中两帧的输入和视线跟踪结果可知,将生成的视线跟踪结果,即三维眼球模型的旋转方向,直接添加到人脸的跟踪结果中,可生成更完整的真实感更强的人脸模型动画。其中,图3(a)的左侧为一帧二维图像,右侧为添加了实现跟踪结果的人脸模型动画。图3(b)的左侧为另一帧二维图像,右侧为添加了实现跟踪结果的人脸模型动画。
综上所述,本发明实施例的基于三维球面泰勒展开的人眼视线跟踪方法,利用三维眼球模型的旋转拟合人眼的二维图像,使三维眼球模型表面的灰度值与将其投影到二维图像上对应二维像素的灰度值相匹配以得到视线方向。在进行匹配降低差异时,该方法计算三维眼球模型顶点的灰度梯度,并对差异函数进行三维球面的泰勒展开求解最小值。由此,结合三维眼球模型实现实时人眼视线的准确跟踪,并且,可直接将三维眼球模型转动的结果添加到人脸的跟踪结果中,增加人脸模型动画的真实感。
为实现上述目的,本发明还提出一种基于三维球面泰勒展开的人眼视线跟踪装置。
图4是根据本发明第一个实施例的基于三维球面泰勒展开的人眼视线跟踪装置的结构示意图。
如图4所示,该基于三维球面泰勒展开的人眼视线跟踪装置包括:
确定模块10、第一计算模块20、获取模块30和第二计算模块40。其中,确定模块10,用于确定三维眼球模型的顶点与二维像素的对应关系。
在本发明的一个实施例中,确定模块10根据相机投影矩阵将所述三维眼球模型的顶点投影到二维图像平面上,所得的像素坐标即为对应的所述二维像素。
第一计算模块20,用于计算三维眼球模型的顶点的灰度值和与三维眼球模型的顶点对应的二维像素的灰度值。
获取模块30,用于根据三维眼球模型的顶点的灰度值获取三维眼球模型的顶点的球面灰度梯度。
图5是根据本发明第二个实施例的基于三维球面泰勒展开的人眼视线跟踪装置的结构示意图。如图5所示,获取模块30包括第一确定单元31和第二确定单元32。
其中,第一确定单元31,用于根据三维眼球模型的顶点的灰度值,确定三维眼球模型的球面灰度值。
在本发明的一个实施例中,第一确定单元31用于:在三维眼球模型的第一球面坐标中天顶角的值小于预设阈值时,确定第一球面坐标的灰度值为0。
在本发明的一个实施例中,第一确定单元31在三维眼球模型的第二球面坐标中天顶角的值不小于预设阈值时,确定第二球面坐标的灰度值为1。
第二确定单元32,用于根据三维眼球模型的球面灰度值,确定三维眼球模型的顶点的球面灰度梯度。
在本发明的一个实施例中,第二确定单元32用于将在三维眼球模型的球面的方位角方向两侧位置的球面灰度值之差确定为三维眼球模型的顶点沿方位角的灰度梯度;
在本发明的一个实施例中,第二确定单元32用于将在三维眼球模型的球面的天顶角方向两侧位置的球面灰度值之差确定为三维眼球模型的顶点沿天顶角的灰度梯度。
第二计算模块40,用于利用差异函数与差异函数的三维泰勒展开形式对二维像素的灰度值和三维眼球模型的顶点的灰度梯度进行计算,获取三维眼球模型的旋转变化量,以使三维眼球模型根据旋转变化量转动。
图6是根据本发明第三个实施例的基于三维球面泰勒展开的人眼视线跟踪装置的结构示意图。如图6所示,该基于三维球面泰勒展开的人眼视线跟踪装置还包括预处理模块50。
其中,预处理模块50,用于定义差异函数,并对差异函数进行三维泰勒展开。
需要说明的是,本发明中对基于三维球面泰勒展开的人眼视线跟踪装置的描述,参照上述对基于三维球面泰勒展开的人眼视线跟踪方法实施例的描述,在此不再赘述。
综上所述,本发明实施例的基于三维球面泰勒展开的人眼视线跟踪装置,利用三维眼球模型的旋转拟合人眼的二维图像,使三维眼球模型表面的灰度值与将其投影到二维图像上对应二维像素的灰度值相匹配以得到视线方向。在进行匹配降低差异时,该方法计算三维眼球模型顶点的灰度梯度,并对差异函数进行三维球面的泰勒展开求解最小值。由此,结合三维眼球模型实现实时人眼视线的准确跟踪,并且,可直接将三维眼球模型转动的结果添加到人脸的跟踪结果中,增加人脸模型动画的真实感。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。