用于确定三维对象上注视点的方法和装置
技术领域
本发明涉及一种用于确定注视端点的方法和装置,尤其是用于确定被摄体在空间中的三维对象上的注视端点的方法和装置。
背景技术
针对找到(可能是移动的)人所注视的点或对象或更具体地对象表面的一部分的问题,存在现存的解决方案。这种解决方案描述如下并且可以被拆分成单独的部分。
首先,要找到人(或者其表示,如瞳孔/CR组合,角膜中心和瞳孔/角膜缘等)的注视方向。
为了确定注视方向,可以使用眼睛追踪器。眼睛追踪器观察眼睛(如瞳孔、角膜缘、巩膜上的血管、眼球或光源的反射(角膜反射))的特征,以计算注视方向。
然后,该注视方向被映射到由头戴式场景相机或任何固定位置处的场景相机所捕捉的场景图像。头戴式场景相机相对于头部是固定的,并且因此,一旦进行了相应的校准,就可以进行这种映射。为了执行校准,用户可能必须注视由头戴式相机捕捉的场景图像中的若干个定义的点。通过使用相应地检测的注视方向,可以执行校准,结果产生将注视方向映射到场景图像中的相应的点的转换。在该途径中,如果任何类型的眼睛追踪器允许将注视方向映射到头戴式场景相机的图像中,则可以都被使用。
该途径使能够确定由头戴式场景相机所拍摄的场景图像中的注视点。
作为下一步骤,它会感兴趣的是将头戴式场景相机所捕捉到的场景图像中的注视点映射到(稳定的)参考图像中的点,该注视点可以由于被摄体的移动而可以变化,该参考图像不会移动并且对应于“真实世界”对象或其图像。从而,因为场景相机可以与使用者的头部一起移动,所以通常从与由头戴式场景相机所拍摄的场景图像不同的相机位置拍摄参考图像。
对于头部移动的这种情况,存在已知途径用于基于相对于头部移动后由头戴式相机拍摄得到的特定场景图像的注视方向的检测来确定不移动的参考图像中的注视点。
一种确定注视点的可能途径是将注视方向与相对于眼睛追踪器所限定的虚拟场景平面相交。WO 2010/083853 A1公开了将有源IR标记物用于该目的,该有源IR标记物被固定到特定位置处,例如附接到书架。首先,通过使用两个正交IR线检测器对这些标记物相对于“测试场景”的位置进行检测,该“测试场景”用作由头戴式相机所获得的“参考”图像,这两个IR线检测器通过检测两个线传感器的最大强度来检测两个正交角度。所检测的IR源的角度对应于其在参考图像中的位置。然后,为头戴式相机从不同位置拍摄的随后检测场景检测标记物的角度,从而检测IR源在随后场景图像中的位置。然后,再确定“立体投射”,该立体投射是将所检测到的IR源在随后拍摄的图像(场景图像)中的位置(此时头戴式相机位于不同的位置)转换成IR光源在测试图像(或参考图像)中的位置的映射。借助于这种转换,之后确定的场景图像的注视点也可以转换成测试图像中的相应的(实际)注视点。
通过相对场景稳定标记物,而非相对眼睛追踪器(ET),来界定注视点被映射的平面,使得将来自实际“场景图像”的注视点映射到不随着时间变化的稳定的参考图像变得可能。以这种方式,参考图像的平面变得随着时间变化而稳定,并且其他参与者的注视也可被映射到其中,因而注视点信息可以随着时间和参与者变化而被聚集,就像之前只能使用位于固定位置的眼睛追踪器做到的一样。
为此,如WO 2010/083853 Al所公开的,现有技术使用IR源作为人工标记物来检测最大发射角,该人工标记物的位置可以通过正交IR线检测器而被检测。
利用IR源作为标记物来确定注视点的从场景图像向参考图像的转换的做法很复杂并且不方便。
在由SensoMotoric Instruments Gesellschaft fur innovative SensorikmbH提交的和题为“用于注视点映射的方法和装置”的欧洲专利申请第EP1 1 158922.2描述了不同的途径,其通过引用并入本文。在该途径中提供了一种用于将被摄体在场景图像上的注视点映射到在参考图像中的注视点的装置,其中所述场景图像和所述参考图像已经由相机从不同的位置拍摄,所述装置包括:
模块,该模块用于在所述参考图像上执行特征检测算法来识别多个特性特征和它们在所述参考图像中的位置;
模块,该模块用于在所述场景图像上执行所述特征检测算法来再次识别所述多个特性特征和它们在所述场景图像中的位置;
模块,该模块用于确定点转移映射,该点转移映射基于在所述参考图像和所述场景图像中检测到的所述多个特性特征的位置而将点位置在所述场景图像和所述参考图像之间转换;
模块,该模块用于使用所述点转移映射以将已经在所述场景图像中确定的注视点映射到其在所述参考图像中的相应的点。
这使能够实现注视点映射,该注视点映射不需要任何人工IR源或IR检测器。它可以在由在可见频率范围内操作的常规CCD相机拍摄的自然场景的正常且无修改的图像上操作。对于这种途径的详细描述,参照欧洲专利申请第EP1 1 158922.2号。
但是,即便凭借这种途径,也只可以将移动被摄体的注视映射到特定的预定静态平面,然而,在3D空间中的任何任意的对象处确定注视端点是不可能的。
因此,本发明的目的在于提供一种途径,该途径可以在3D空间中的任何任意的对象处确定注视端点。
发明内容
根据一个实施例,提供了一种用于确定被摄体的注视端点的系统,该系统包括:
眼睛追踪单元,该眼睛追踪单元适于确定对象的一只或多只眼睛的注视方向;
头部追踪单元,该头部追踪单元适于确定头部和/或眼睛追踪单元相对于参考坐标系统的位置,该位置包括地点和方位;
3D场景结构表示单元,该3D场景结构表示单元借助参考坐标系统中的坐标、通过借助对象的3D位置和/或对象的3D结构表示真实世界场景的对象,来表示真实世界场景和场景中所包含的对象,从而提供场景的3D结构表示;
计算单元,该计算单元用于基于注视方向、眼睛追踪器位置与3D场景结构表示来计算注视端点,和/或用于
基于注视方向、眼睛追踪器位置与3D场景结构表示来确定被摄体正在注视的3D场景中的对象。
通过使用3D表示,眼睛追踪器和头部追踪器可以不仅确定2D平面上的注视点而且还可以确定被摄体正在注视的的对象和/或3D中的注视端点。
根据一个实施例,该系统包括:模块,该模块用于计算场景的3D结构表示的对象上的注视端点,其中所述注视端点基于注视方向与与3D结构场景表示中的对象的交点来计算。
注视方向与3D表示的交点给出了用于计算注视“命中”3D结构或与3D结构相交的地点的几何途径,并且因此提供了真实注视端点。从而,可以确定场景中的3D对象上的真实注视端点。
根据一个实施例,该系统包括模块,该模块用于基于被摄体的两只眼睛的注视方向的交点来计算注视端点,和/或
模块,该模块用于基于所计算的注视端点和真实世界场景的对象的3D位置和/或3D结构来确定被摄体正在注视的对象。
通过使用聚散度来计算被摄体的眼睛的注视方向的交点,可以确定注视端点。然后,该注视端点可以用来确定用户正在注视的对象。
根据一个实施例,通过选择3D位置和/或结构最接近所计算的注视端点的对象,被注视的对象被确定为被摄体正在注视的对象。
根据一个实施例,所述眼睛追踪单元适于确定所述一只或多只眼睛的所述注视方向的概率分布,该眼睛追踪单元适于确定所述被摄体的所述一只或多只眼睛的注视方向,并且其中用于确定被注视的对象的所述计算单元基于注视端点的概率分布来为一个或多个对象确定被注视的所述对象的概率。
以这种方式,可以确定概率分布,该概率分布指示被摄体注视特定对象的概率。
根据一个实施例,系统还包括:
场景相机,该场景相机适于从任意视点获取场景的一个或多个图像;
模块,该模块用于将3D注视端点映射到由场景相机所拍摄的场景图像的图像平面上。
以这种方式,不仅确定了3D结构上的3D注视端点,而且还可以确定由场景相机拍摄的任何场景图像上的相应的位置。这使能够从任意视点,换句话说,从任意位置来确定由相机拍摄的场景图像中的注视点。
根据一个实施例,由一些位置确定或对象追踪机构来获知或确定场景相机的位置并且通过将执行3D注视端点投射到所述场景相机的图像上来执行映射。
这是一种从3D注视端点中得到由任意位置处的相机拍摄的场景图像中的相应的点的方式。
根据一个实施例,系统还包括:
模块,该模块用于基于3D结构表示生成如从任意视点看到的场景图像;
模块,该模块用于将3D注视端点映射到由所述场景图像生成模块生成的图像的图像平面上,其中通过执行将3D注视端点投射到由所述场景图像生成模块生成的所述场景图像的图像平面上来执行映射。
以这种方式,任意场景图像可以不是通过使用场景相机拍摄图像来生成,而是基于3D结构表示来生成。然后,在该场景图像中,注视端点或被注视的对象可以通过将注视端点投射到场景图像上或通过例如在场景图像中突出已经确定为被注视的3D结构的对象的对象来指示或可视化。
根据一个实施例,所述眼睛追踪器为头戴式眼睛追踪器;
和/或
所述场景相机是头戴式场景相机。
头戴式眼睛追踪器与头戴式场景相机是这些设备的方便实现方式。而且,如果眼睛追踪器是头戴式的,则头部追踪器还自动传递眼睛追踪器的位置/方位。这同样适用于场景相机。使用由头部追踪器所确定的头部位置(地点和方位)可以基于眼睛追踪器的坐标系统中的由头戴式眼睛追踪器所确定的注视方向来确定头部追踪器的参考坐标系统中的相应的注视方向。这可以通过简单转换来做到,该简单转换使用由头部追踪器所确定的头部位置和方位来将注视方向从眼睛追踪器的坐标系统转换到头部追踪器的坐标系统中。由头部追踪器自动传递的位置还借助给定设置来传递眼睛追踪器的位置,在该给定设置中,眼睛追踪器例如通过安装框架来固定到头部并且与头部具有限定的空间关系,通过该安装框架,眼睛追踪器安装在头部上。
根据一个实施例,所述3D结构表示单元包括3D场景结构检测单元,该3D场景结构检测单元适于确定场景的对象的3D结构和位置或它们在参考坐标系统中的几何表面结构以获得真实世界场景的3D结构表示。
以这种方式,3D结构或其至少相关的可视部分可以通过使用结构检测单元直接从场景中获得。
根据一个实施例,所述3D结构检测单元包括以下之一:
激光扫描器,该激光扫描器可能与相机组合;
光学扫描器和发射结构光的光源;
立体相机系统;
超声波检测器;
任何机械检测实现方式。
这些均是3D结构检测单元的方便实现方式。
根据一个实施例,系统包括以下的一项或多项:
3D注视端点被映射到由多个不同的场景相机拍摄的一个或多个场景图像和/或从不同视点拍摄的场景图像;
对于多个不同被摄体,3D注视端点被映射到相同的场景图像;
可能对于不同被摄体,3D注视端点随着时间变化被映射到或聚集到相同的场景图像。
对于不同用户和/或不同地点处的不同场景相机,这通过映射注视端点来利用该途径的灵活性的优势。甚至可能对于不同被摄体,可以随着时间变化来执行记录注视端点和将注视端点映射到一个或多个可能不同的场景图像,从而以期望的方式获得注视数据的表示。
根据一个实施例,随着时间变化所映射的3D注视端点与相应的观看频率或累积的观看时间一起通过可视化3D注视端点来在场景图像中进行可视化,该3D注视端点可能根据不同被摄体进行区分。
这使能够可视化所测量的注视端点及其映射的场景位置。
根据一个实施例,所述可视化使用一项或多项:
热图;
焦点图;
注视重心;
观看时间的自动轮廓
这些均是用于可视化的适当实现方式。
根据一个实施例,所述3D结构检测器重复确定所述3D结构,以使即使所述3D场景是非静态的,也能够使用所述眼睛追踪器和所述头部追踪器来检测实时注视点,或
所述3D场景结构检测器最初确定所述3D结构并且对象追踪器追踪场景中的一个或多个对象的移动,从而使能够使用随着时间变化的所追踪的对象和所追踪的注视方向来确定随着时间变化的注视点。
以这种方式,即使对于非静态场景,也能够实现在线测量。
根据一个实施例,所述3D结构检测单元包括一个或多个场景相机和计算单元,该计算单元用于基于所述一个或多个相机的图像来计算所述3D结构。
以这种方式,在不需要除了场景相机和计算单元之外的专用硬件的情况下,可以实现3D结构检测单元。根据一个实施例,当一个或多个场景相机用于拍摄之后注视端点要被映射到其中的场景图像时,可以是相同的场景相机。
根据一个实施例,所述计算单元使用视觉SLAM(视觉同步定位和地图构建)算法来计算所述3D结构和/或场景相机的位置。
这是由场景相机和计算单元对3D结构检测单元的适当实现方式。
根据一个实施例,系统包括:
显示单元,该显示单元用于在可视化参考模型上的统计数据的情况下显示来自一个或多个人的注视数据,其中所述可视化包括:
基于投射到对象表面上的可视化;
基于3D结构的飞行-通过(fly-through)可视化的可视化。
这些均为用于实现所测量的注视端点的可视化的适当途径。
根据一个实施例,一个或多个场景相机的图像被组合到诸如全景或多空间感图像(multiperspective image)之类的一个或多个较大的图像以作为场景图像或图像,和/或
和/或
其中所述3D结构表示单元使用场景的对象在参考坐标系统中的3D结构和位置来提供已经事先确定的场景的3D结构表示。
这些均为用于实现所测量的注视端点的可视化的适当途径。
使用3D结构表示单元而非结构确定单元使其可以使用已经被事先确定的3D数据。
附图说明
图1A和图1B示意性地示出了根据本发明的实施例的对象表示。
图2示意性地示出了根据本发明的实施例的注视端点确定系统。
图3示意性地示出了根据本发明的另一个实施例的注视端点确定系统。
具体实施方式
在下文中将对本发明的实施例进行描述。
根据一个实施例,确定注视端点的确定,以及在一个实施例中,不仅对于平面而且还对于3D空间中的一般对象,确定注视端点的映射。而且,根据一个实施例,可以确定被摄体正在注视的3D空间中的哪个对象。
根据一个实施例,为此,使用3D结构检测器、用于追踪被摄体的头部及其方位的对象追踪器(“头部追踪器”)、和眼睛追踪器。通过使用头部追踪器追踪头部移动和使用眼睛追踪器追踪被摄体的眼睛的注视方向,可以获得被摄体在3D空间中的注视方向。然后,该注视方向可以投射或者与“世界”的3D模型相交,该“世界”的3D模型从3D结构检测器中获得并且被对象看到。从而可以确定被摄体的注视指向的和它“命中”3D结构的对象的3D模型中的点。以这种方式,可以确定“注视端点”,并且从而确定被摄体注视的对象。
根据另一实施例,基于眼睛的聚散度来确定注视端点。在本实施例中,眼睛追踪器检测到被摄体两只眼睛的注视方向。当被摄体看特定对象时,则两只眼睛的注视方向不是平行的,而是它们都指向同一对象,这意味着它们相交于被摄体正在看的注视点。这意味着,如果眼睛追踪器获得了两只眼睛的注视方向,那么在3D空间中因此获得的注视方向的交点的计算实际上提供了3D空间中的注视点。
可能发生的是,为被摄体的两只眼睛确定的两个注视方向事实上不在空间中的某一点相交。原因可能在于,确实没有交点,这意味着这两个注视方向确实不在空间中的同一个点会聚并相交,或由测量误差而导致无交点。不过,在两种情况下,例如通过选择位于两个注视方向之间的距离矢量的中间部位的点,换句话说,位于最靠近两个注视方向的3D空间中的点,仍然可以基于交点来确定注视端点。
然后,通过使用因此确定的注视端点和对象在3D空间中的表示,可以确定被摄体正在注视哪个对象。该表示可以例如是根据一个实施例由结构生成单元获得的对象的完整3D结构表示。对象的3D结构表示定义对象的结构(例如,通过它们的边界)。如果注视端点确定是精确的并且没有误差,则该注视端点将大致位于3D结构的对象的表面上,并且该注视端点是被确定为被摄体正在注视的点的点。一旦已经确定了注视端点,就从3D结构表示中得知注视端点正在位于其上的对象,并且从而得知用户正在注视的对象。
可能会出现注视端点不在对象上的情况。这可能是由于不同的原因,一个是例如由聚散度确定的注视端点不完全正确和精确,然后因此确定的注视端点可能位于没有对象存在的空白空间中的某处。然而,根据一个实施例,即使在这种情况下,还可以例如通过确定与注视端点最接近的对象来确定被注视的对象。然后,该对象可以被选择作为一个已经确定被摄体正在注视的对象。
如果两个注视矢量与对象的体积相交,则检验另一种用于确定由被摄体所注视的对象的途径。在这种情况下,与这两个注视矢量相交的对象被确定为用户正在注视的对象。
根据一个实施例,两只眼睛的注视方向可以用来确定“组合的”注视方向。这可以例如通过首先基于聚散度计算注视端点作为两只眼睛的注视方向的交点来做到。然后,所得的注视端点可以用来确定注视方向,换句话说,是“组合的注视方向”,该注视方向基于两只眼睛的注视方向。根据一个实施例,这可以通过选择作为注视方向的矢量来做到,该矢量源自例如被摄体的眼睛之间并且通过已经基于交点确定的注视端点。然后,所得的组合的注视方向可以用于计算其与3D结构的对象的交点来确定被注视的对象。
根据一个实施例,眼睛追踪单元适于确定一只眼睛或多只眼睛的注视方向的概率分布,该眼睛追踪单元适于确定被摄体的一只或多只眼睛的注视方向。该概率分布可以指示所确定的注视方向正确的可能性。它可以例如基于眼睛追踪器的(已知的或估计的)精度或“误差分布”来获得。对于测量值(即注视方向),该精度给出测量值正确的概率,并且对于不同值,以概率分布的形式指示不同值是正确的测量值的可能性。对于3D空间中的点,使用这种概率分布,可以指示它们位于所测量的注视方向上的概率。
根据一个实施例,对于多个对象,该概率分布用来确定该多个对象被注视的相应的概率。所测量的注视方向的概率分布对应于不同注视端点的概率分布。从而,概率分布可以例如反映所测量的注视方向的误差分布。例如,如果测量特定注视方向,则由于一些测量误差(如由错误分布或“概率分布”所指示的),所以误差分布指示不同注视方向是正确的不同可能性。因为对于这些不同注视方向存在所得的不同注视端点,所以可以基于不同注视端点及其相应的概率获得被注视的相应的对象的各自概率。这可以例如通过整合在对象的整个表面上的独立的点的注视概率来做到,这些独立的点属于该对象的表面。以这种方式,基于注视方向的概率分布获得了注视端点的概率分布,并且这用来确定为3D空间中的各种对象指示它们被注视的概率的概率分布。在该实施例中,因此,“用于确定被注视的对象的计算单元”实际上确定了对象被注视的概率作为“确定被注视的对象”的实现方式,换句话说,这是计算单元用于确定被注视的对象的具体实施例。
根据一个实施例,注视方向的概率分布也可以用于为被摄体的两只眼睛确定的注视方向。在本实施例中,两个注视方向的每一个均具有其自身的概率分布,该概率分布反映特定注视方向正确的可能性。然后,基于以上,可以为3D空间中的各个点计算这是注视端点作为两个注视方向的交点的可能性。然后,换句话说,这导致概率分布指示,该概率分布为3D空间中的点指示其为注视端点的概率。根据一个实施例,该概率分布用来确定某一对象被注视的概率;它是直接从注视端点的概率分布中得知的。
根据一个实施例,如前面提到的,注视方向的概率分布反映了注视方向的测量“精度”或“误差”。它可以通过测量误差分布来确定或者它可以仅仅被估计。根据又一个实施例,不仅采用由概率分布反映的特定误差来确定注视方向,而且还确定了对象在3D空间中的位置。根据一个实施例,对于3D空间中的各个对象,存在其准确性相对于对象的位置的不确定性,该准确性由概率分布来反映。然后,该概率分布可以与注视方向(多个)的概率分布或注视端点的概率分布组合以获得某一对象被注视的组合概率,该组合概率反映了这两种不确定性。
根据又一实施例,对象不需要由它们的形状、位置和方位的完整3D表示来表示。相反,各个对象可以仅仅由空间中一个代表性点来表示,该代表性点表示对象在3D空间中的位置。该代表性点可以例如是3D对象的重心。另选地,其可以是任意点,例如表示对象在3D空间中的位置的用户定义或用户选择的点可以被选择作为3D空间中代表性点,该代表性点表示对象的位置。以这种方式,多个对象的位置可以在三维空间中表示。然后,基于由聚散度确定的注视端点,可以确定表示最接近于注视端点的对象的点。以这种方式,可以确定被摄体正在注视该对象。
对象也可以不只是由单个点表示,它可以用一些代表性3D表示来表示,该代表性3D表示具有一些两个或三个维度(例如以平面区域或以3D形状(如球体))的扩展,该3D形状具有代表性点作为中心。可以使用基于场景对象的任意空间细分曲面,在这里该空间细分曲面可以用来表示对象。
现在,这是结合图1A和图1B所示。图1A示出了3D真实世界场景的示例。它包括桌和悬挂在天花板上的灯作为真实世界对象。这些对象的3D表示在图1B中示出。由具有3D空间中的中心C和半径R的球体表示灯。由具有角X1、X2、X3和X4的矩形表示桌,X1至X4和C的坐标可以通过一些测量来确定从而确定3D坐标。可以选择半径R使得它在某种程度上类似于“真实灯”的形状。
然后,结果形成了如图1B所示的配置,两个对象的3D位置由3D空间中的一些表示来表示。图中还示出了被摄体S的头部。头部在3D空间中的位置和方位可以由一些对象追踪器(未示出)来确定,由一些眼睛追踪器,例如头戴式眼睛追踪器(未示出)来获得注视方向。然后,使用由眼睛追踪器所获得的注视方向和来自头部追踪器的位置和方向(在其自身的坐标系统中)可以在3D空间中确定注视方向L1和L2。这将在后面进行更详细的解释。
然后,基于聚散度,注视方向的交点G被确定为注视点。从图1A中可以看出,它不在对象表示的其中一个上,也不在灯上和桌上。然后,确定从注视点G到桌和灯的距离。可以看出,到桌D1的距离比到灯的距离更近,并且因此,系统随后可以推断出被摄体注视桌。
以这种方式,系统可以在3D空间中确定用户正在注视的对象。
根据另一实施例,对象的3D表示使用具有更大粒度的更精确的表示,例如表示对象在3D中的表面的网格。然而,原则上,系统随后可以以相同的方式操作。如果注视点被更准确地确定并且在3D对象表示的表面上或3D对象表示的表面附近,则系统不仅可以确定被摄体正在注视的对象,而且甚至可以确定用户正在注视的对象的位置。
现在,将稍微更详细地对另一个实施例进行描述。在本实施例中,对象由3D结构表示来表示,并且基于注视方向与3D对象表示的交点而非基于聚散度来确定被摄体正在注视的对象。
换句话说,凭借这种途径,基于被确定的并与表示“真实世界”对象的3D结构相交的注视方向,可以确定3D对象上的注视端点。根据一个实施例,因此确定的注视端点可以映射到场景的任何图像中的相应的位置。而且,由于该途径因注视方向与用户正在注视的对象相交,而直接提供用户注视的对象,所以,以这种方式,识别被注视对象的问题就简化为命名对象/对象部分。
根据一个实施例,一种用于将注视映射到3D对象上的系统操作如下。
用来测量3D场景结构(3D检测器)的检测器用来确定场景中的所有或所有相关(例如所选择的对象或大于最小尺寸的对象)对象的表面结构、位置和方位,该所有或所有相关的对象形成了参考模型(3D结构或“真实世界”的“3D结构的模型”)。该参考模型为用户注视的“世界”的表示。它由“世界”的对象的表示组成,例如通过网格。
例如,它在“参考坐标系统”中表示。与例如头戴式眼睛追踪器的坐标系统相反,参考坐标系统不随着时间变化并且是静态的,该头戴式眼睛追踪器与被摄体的头部一起移动。
可以使用头部追踪器来随时测量眼睛相对于3D检测器和扩展到所检测的场景对象的位置(同样适用于多只眼睛),该头部追踪器把眼睛的位置与3D检测器位置和/或头部追踪器位置联系起来(并且从而也给出了其在参考坐标系中的位置)。优选地,头部追踪器不仅给出了头部或头戴式眼睛追踪器的位置,而且还给出了头部或头戴式眼睛追踪器的方位。而且,优选地,因为头部追踪器坐标系统是3D结构检测单元的参考坐标系统,所以它不随着时间变化。在一个实施例中,这两个坐标系统是相同的,在另一个实施例中,可以存在不随着时间变化的转换,该不随着时间变化的转换将头部追踪器坐标系统转换到3D结构检测单元的参考坐标系统,反之亦然。
通过将3D检测器和头部追踪器与测量注视方向的眼睛追踪器组合,可以计算与3D结构的对象的表面的注视交点。头戴式眼睛追踪器输出头部/眼睛追踪器的坐标系统中的注视方向。因为从头部追踪器获知头部位置及其方位,所以由于头戴式眼睛追踪器的已知设置也获知了眼睛追踪器的位置和方位。使用来自眼睛追踪器的该信息,通过眼睛追踪器坐标系统到参考坐标系统的简单转换,可以基于由眼睛追踪器坐标系统中的眼睛追踪器确定的注视方向来推导出参考坐标系统(3D结构被表示的系统)的注视方向。转换直接从由头部追踪器所测量的头部的所测量的位置和方位得知。
然后,该注视方向可以与场景的3D结构表示相交来检测3D结构的对象上的3D注视端点。因此,提供了一种测量设备,该测量设备测量人(或被摄体的)的眼睛在场景中的3D对象上的注视端点以及对象本身的参数。
这是一种非常新颖的用来确定注视点的途径。因为在这种情况下,对象必须由手来指定用于各个图像,所以该途径与获知场景的图像上的注视点截然不同。
现在通过检测由3D结构检测器检测的3D结构上的3D注视点,该途径在以往确定真实场景平面上的注视点的途径中扩延。因为以往使用场景平面的途径仅在2D空间中操作,所以它不涵盖具有由离开平面的对象点所引起的视差的点,在该平面中,通常存在大量的真实场景。因此,本途径还克服了这种视差问题。
一旦已经确定了3D对象上的注视端点,则可以将注视端点映射到由相机从任何任意位置处拍摄的场景图像。为此,需要相机的参数及其相对于场景的位置。通过设置/校准的定义,它们可以是已知的,或两者均从场景结构给出的图像本身计算出,或可以以其它方式对它们进行测量。
根据本发明的又一个实施例,场景图像不是由场景相机拍摄的,而是例如通过将结构投射到(任意的)场景图像的图像平面中基于3D结构表示来生成。然后在该任意的场景图像中,可以突出已经被确定为被注视的对象的3D结构的对象,或可以通过将被摄体的注视端点从3D结构投射到场景图像中来可视化被摄体的注视端点。
根据一个实施例,用户可以通过手命名对象或甚至更详细地命名3D结构的对象部分。这样,对象可以使用名称进行标记,使得在注视“命中”到这种具有名称的对象后,导致返回相应的对象名称。假设对象随着时间变化而相同,这仅需要进行一次,并且对于所有参与者和任何参与者观察该场景的所有次数,可以确定对任何对象的注视。这是因为对象的真实3D模型可以应对可以由用户拍摄的所有可能的视点。
在一个实施例中,系统可以给未被手动标记或贴标签的未命名的对象分配默认名称。
根据一个实施例,对于静态场景,可以离线创建参考模型。这在图2中示意性地示出。在实际注视测量(这如图2的上部中的步骤a)所示)之前,使用3D结构检测器“离线”创建3D模型/参考模型。之后不需要3D结构检测器,然后ET(眼睛追踪器)和HT(头部追踪器)的组合足以确定在步骤a)中确定的3D结构上的3D注视端点。这在图2的上部中的步骤b)中示出,该图2示出了确定3D结构上的注视端点。
然后,可以执行将注视端点映射到由场景相机拍摄的场景图像上。为此,可以使用任何3D投射方法,该3D投射方法使用相机的位置和参数来将3D结构映射到2D场景图像。以这种方式,注视命中3D结构的位置可以映射到由场景相机拍摄的场景图像处的相应位置上。该映射过程在图2的下部中的步骤b)中示意性地示出,该图2示出了将3D结构映射到场景图像的过程(例如,通过使用3D投射执行的)。
对于静态场景使用上述途径。根据一个实施例,如果对动态场景内容感兴趣,则3D结构检测器与ET和HT并行工作。这在图3中示意性地示出,其中确定3D结构与通过ET确定注视、确定HT的头部位置、以及确定映射到场景图像的注视端点并行。
根据一个实施例,由另一机构将场景的动态变化考虑在内。在本实施例中,3D结构最初仅确定一次。然而,可以由一个或多个对象追踪器随着时间变化检测并追踪3D空间中的场景的相关对象的位置和方位。注视方向也随着时间变化而被追踪。然后,基于因此获得的追踪数据,可以执行离线处理,该离线处理随着时间变化确定注视方向和移动对象之间的交点,从而确定动态注视端点。
现在,将对又一个实施例进行描述,稍微更详细地对其部件进行描述。
本实施例的部件为注视追踪器、头部追踪器和3D结构检测器。可以通过任何一种传统的眼睛追踪器来实现注视追踪。如果需要校准,则眼睛追踪器被校准到空间中的已知平面,使得可以从平面上的注视点计算出注视方向。
例如,以下设备可以用作头部追踪器:
-磁性头部追踪器
-或者,光学头部追踪器
-可以测量ET(或眼睛本身)相对于3D结构检测器(或场景中的对象)的位置和方位的任何类型的设备
根据一个实施例,将场景相机与受检对象组合使用以计算场景相机的位置和方位。当相机用于拍摄之后注视端点要被映射到其中的场景图像时,可以是相同的场景相机。为了确定相机位置的目的,可以使用视觉SLAM途径。对视觉SLAM途径的描述例如可以在Andrew J. Davison的“使用单个相机的实时同步定位和地图构建”ICCV2003、或在RichardA. Newcombe and Andrew J. Davison的“利用单个移动相机的实时密集重构”CVPR2010中找到。
根据另一个实施例,可以例如通过相机的内部传感器(例如,GPS传感器)来只测量相机位置,或者可以以某些其它方式(例如通过内部测量单元或对象追踪器)来确定该相机位置。
根据一个实施例,借助设置获知ET相对于场景相机的位置(两者均安装在同一框架上)。
为了确定3D结构,可以使用若干个设备/途径。
这种测量设备是:例如
-3D扫描器(激光扫描器、结构光扫描器等)
-立体相机系统
-单目相机系统(例如,视觉SLAM)
-手动测量
相对于手动测量,例如,用于建筑物的计划是事先已知的,例如来自于施工计划,或可以通过一些“手动测量”推导出计划。然后,3D结构检测单元可以只存在于用于“获得”或“读取”所存储的3D结构数据的设备中,而无需执行实际结构确定,这些3D结构数据已经事先被测量。
可以因此使用3D结构表示单元来取代3D结构检测单元,该3D结构表示单元使用场景的对象在参考坐标系统中的3D结构和位置来提供场景的3D结构表示。可以事先进行3D结构的测量,然后结构表示单元仅使用先前测量的数据来提供3D结构表示。
根据一个实施例,对于静态场景,使用相机(例如,场景相机)来捕捉相关场景部分的视频并通过使用视觉SLAM途径来计算场景结构。之后,该途径还使能够从图像本身来计算拍摄场景图像的相机的位置。
对于动态场景,可以在线测量结构,这意味着重复确定3D结构以考虑其动态变化。
否则,对感兴趣的对象(多个)的离线(或最初)3D结构可以使用检测和追踪的组合。对于不随着时间变化的静态场景(如超市货架),可以事先测量结构一次。
之前所描述的途径具有优于现有途径的若干优点,如下所示。
•对象在整个场景内是唯一的并且扩展开来,对象上的注视端点也是如此。如果已经定义了对象/对象部分的类别,则注视的分类可以自动按照对象/对象部分进行,与用户的位置和由场景相机拍摄的场景图像均无关。
•注视端点与场景相机图像分离。注视被映射到对象上,而非对象的图像上。对于具有场景相机的ET,可以将注视从参考模型对象重新映射到场景相机图像的图像平面。即使注视点落在场景图像外面,这也是真实的。
•即使使用非无视差(non-parallax-free)眼睛追踪器,因为以几何校正方式来计算注视端点,所以在注视映射中也无视差误差存在。
•可能告知在场景中哪个对象实际上被注视,在该场景中,感兴趣的对象彼此前后对齐,使得多个对象通过使用聚散度与注视路径相交。例如,即使注视方向与位于另一对象前面的对象相交,但是如果两个注视点基于聚散度的交点位于后面的对象上,则也可以假设真实注视点是后面的对象。
•注视数据的新可视化是可能的:
○随着时间和/或参与者变化而聚集
○在对象表面(例如热图)上
○空间中的注视射线的3D可视化、空间中的对象的3D可视化、使用所映射的注视数据纹理化的对象的3D可视化(热图、焦点图、等)
○投射到场景图像的对象的自动轮廓、重心等
○动态可视化(如对象周围的飞行-通过)
○任意场景图像上/场景电影(其中来自参与者的场景相机的电影是一个特例)上的聚集的注视数据
在下文中,将对具有其组件的又一个实施例进行描述。
首先,该系统包括眼睛追踪器,该眼睛追踪器提供人相对于头部的坐标框架的注视方向。只要注视方向可以被转换成头部相对坐标系统,该注视方向就可以间接被限定。
此外,该系统包括头部追踪器,该头部追踪器检测头部追踪器或眼睛追踪器的坐标系统相对于场景坐标系统的位置和方位。这例如可以使用传感器来做到。在某些情况下,这些传感器检测它们自身相对于场景的位置,然后,该传感器需要安装到头部。然而,可以使用任何头部追踪设备。
此外,该系统包括3D结构检测器,该3D结构检测器测量对象的三维表面结构。该结构由表面部分(点、片(patch)、平面、或用于描述3D结构的类似特征)的位置、方位和邻居(neighborhood)构成。检测器还可以测量对象的外观。
可选地,该系统还包括场景相机(可能与位置检测设备组合,因此获知其位置和方位),该场景相机制作场景的参考图像。
使用这些部件,可以确定3D结构上的注视点。而且,使用场景图像和场景相机的位置,可以执行将3D注视点映射到场景图像上。
假定拍摄场景图像的相机的相机位置已知,那么可以例如使用将3D注视点3D投射到场景图像上来执行这种将相机位置映射到任何场景图像上。
根据又一个实施例中,可以以稍微不同的方式对任意场景图像中的注视点进行定位。假设已经确定了第一场景图像处的注视点,那么对于从不同位置拍摄的第二场景图像,可以使用在欧洲专利申请第1 1 158922.2号中所描述的注视点映射程序。
应当注意,3D结构检测器、头部追踪器、和位置检测设备均可以由相机结合适当的方法来实现以从图像中提取必要的信息。在这种实施例中,眼睛追踪器只需要与场景相机和执行提取方法的设备(诸如被适当地编程的计算机)组合来提取诸如3D结构、相机位置和头部位置之类的数据。
根据一个实施例,可以使用远程眼睛追踪器来替代头戴式眼睛追踪器。如果该远程眼睛追踪器位于固定位置处并且具有固定坐标系统,则其坐标系统可以用作参考坐标系统或它至少具有与3D结构检测器的参考坐标系统的已知空间关系。如果远程眼睛追踪器能够在其自身时间不变的坐标系统中直接获得注视方向,则不再需要“单独的”头部追踪器,然后,通过确定眼睛位置和方位,眼睛追踪器同时也是头部追踪单元的实现方式,该确定也是由这种眼睛追踪器执行。
根据一个实施例,场景相机可以相对于眼睛追踪器移动。其位置可以由对象追踪器来确定,然后注视点可以投射到如前所述的场景图像上,而不考虑其位置。