用于头部姿势估计的方法和系统与流程

文档序号:20361671发布日期:2020-04-10 23:43阅读:159来源:国知局
用于头部姿势估计的方法和系统与流程

本发明涉及用于头部姿势估计的方法和系统。



背景技术:

不同类型的应用需要头部姿势估计(hpe)。除了确定头部姿势本身之外,hpe通常对于面部识别、面部表情检测、凝视等也是必要的。这些应用中有许多是与安全相关的,例如是否检测到驾驶员的头部姿势以确定他是否疲倦或分心。然而,基于相机图像检测和监测人的头部的姿势是一项有挑战的任务。这尤其适用于使用单眼相机系统的情况。通常,头部姿势的特征可以是6个自由度(dof),即3个平移和3个旋转。对于大多数应用,这6个dof需要实时确定或估计。头部姿势估计遇到的一些问题是,人的头部在几何上相当复杂,个体头部差异显著(在大小、比例、颜色等方面),并且照明可能会显著影响头部的外观。

通常,旨在用于单眼相机系统的hpe方法基于几何头部模型以及图像中头部模型上特征点的跟踪。特征点可以是面部地标(例如,眼睛、鼻子或嘴)或人面部上的任意点。因此,这些方法依赖于对面部地标的精确检测或帧到帧的面部检测。这些方法的主要缺点是,当面部地标被相机遮挡时,它们可能在头部的大旋转角度处失效。基于跟踪面部表面上任意特征的方法可以应对更大的旋转,但是跟踪这些特征通常是不稳定的,例如,由于纹理低或照明变化。另外,在大旋转角度下的面部检测也比在正面观察时更不可靠。尽管已经有若干种用于解决这些缺点的方法,但是到目前为止仍未解决基本问题,即需要对面部或面部地标进行逐帧检测。

发明目的

本发明的目的是提供用于可靠且鲁棒的实时头部姿势估计的单元。该目的通过根据权利要求1的方法和根据权利要求14的系统来实现。



技术实现要素:

本发明提供了一种用于使用单眼相机的头部姿势估计的方法。在本发明的上下文中,“估计”头部姿势和“确定”头部姿势被同义地使用。可以理解的是,每当仅基于图像确定头部姿势时,就存在一些不准确的余地,这使其成为对头部姿势的估计。该方法使用单眼相机,这意味着一次只能获得来自单个视点的图像。然而,可以想到的是,在执行该方法的同时,单眼相机本身会改变其位置和/或朝向。尽管可以想到将该方法应用于动物头部的hpe,但是在该上下文中“头部”大多是指人的头部。

在第一步中,提供由相机记录的初始图像帧,该初始图像帧示出了头部。可以理解,图像帧通常被提供为代表像素的一系列(数字)数据。初始图像帧代表相机视场中的所有事物,并且初始图像帧的一部分是头部的图像。通常,初始图像帧应示出整个头部,但本发明的方法也可以在例如以下情况下工作:人离相机太近,以至于只有头部的一部分(例如,80%)可见。通常,初始图像帧可以是单色或多色的。

在已经提供了初始图像帧之后,可以获得初始头部姿势。可以基于如下所述的预定义的几何头部模型从初始图像帧确定该初始头部姿势。替代地,该方法可以使用外部确定的初始头部姿势,如稍后将描述的。随后,执行至少一个姿势估计循环。然而,应注意,姿势估计循环不必紧随其后执行。例如,如果相机正在记录一系列图像帧,例如以每秒50帧或每秒100帧的速度,则不必对跟随初始图像帧的图像帧执行姿势估计循环。而是可能的是自初始图像帧以来已经过了若干帧甚至几十帧。每个姿势估计循环包括以下步骤,所述步骤不一定必须按照它们被提到的顺序执行。

在一个步骤中,在感兴趣区域内识别并选择头部的在初始图像帧中具有2d坐标的多个显著点。显著点(或显著特征)是以某种方式与其周围环境可明显区分的点,主要是由于颜色或亮度的明显对比。通常,它们是纹理区域的一部分。显著点的示例是眼角或嘴角、耳朵的特征、胎记、穿孔等。为了检测这些显著点,可以采用本领域中已知的算法,例如哈里斯角落检测、sift、surf或fast。识别并选择多个这样的显著点。这包括一些显著点被识别出但未被选择(即,被丢弃)的可能性,例如因为认为它们不适合该方法的以下步骤。感兴趣区域是初始图像帧中被认为示出头部或头部的至少一部分的那部分。换句话说,对显著点的识别和选择仅限于该感兴趣区域。记录初始图像帧与选择多个显著点之间的时间间隔可以短或长。然而,对于实时应用,最期望的是时间间隔短,例如少于10ms。通常,对显著点的识别并不局限于人的面部。例如,当头部旋转时,感兴趣区域至少在一个循环中包括头部的非面部区域。在那种情况下,至少在一个循环中,至少一个选择的显著点在头部的非面部区域中。这样的显著点可以是例如耳朵、耳环等的特征。不限于检测面部特征是本发明方法的巨大优点,所述本发明方法使得对面部进行逐帧检测不必要。

在已经选择了显著点之后,使用与头部姿势相对应的头部的几何头部模型来确定对应的3d坐标。将理解,所确定的3d坐标是当前头部姿势的3d几何头部模型的显著点的3d坐标。换句话说,从显著点的2d坐标(在初始图像帧中)开始,确定(或估计)3d空间(或“现实世界”)中的3d坐标。当然,在没有附加信息的情况下,3d坐标将将是模糊的。为了解决这种歧义,使用了几何头部模型,其定义了头部的大小和形状(通常以简化的方式),并假设了头部姿势,所述头部姿势定义了头部的6个dof,即头部的位置和朝向。技术人员将理解,几何头部模型对于所有姿势都是相同的,但其配置(朝向+位置)不是。还应当理解,(初始)头部姿势必须以某种方式预先确定。虽然大致确定头部的位置是可设想的,例如通过假设平均大小并将其与初始图像的大小相关联,但很难估计朝向。一种可能性是考虑初始头部模型的3d面部特征。使用透视n点法,估计了将这些3d面部特征与在图像中检测到的其对应的2d面部特征相关联的头部姿势。然而,此初始化需要检测图像中足够数量的2d面部特征,这可能无法始终得到保证。为了解决此问题,在记录初始图像帧时,可能会要求人直接面对相机(或采取某种其他明确定义的位置)。替代地,可以使用一种方法,所述方法确定在哪个帧中该人正望向相机并将该帧用作初始图像帧。完成此步骤后,将显著点与3d坐标关联,所述3d坐标位于由(通常是简化的)几何头部模型表示的头部上。

在另一步骤中,提供了由相机记录的示出头部的更新的图像帧。该更新的图像帧已在初始图像帧之后被记录,但是如上所述,它不必是下一帧。与本领域已知的方法相反,即使从初始图像帧到更新的图像帧已经经过了若干图像帧,本发明的方法也令人满意地工作。这当然暗示了更新的图像帧与初始图像帧有很大不同并且头部的姿势可能已经显著改变的可能性。

在提供了更新的图像帧之后,在更新的图像帧内识别至少一些先前选择的具有更新的2d坐标的显著点。显著点可以例如从初始图像帧跟踪到更新的图像帧。然而,其他特征配准方法也是可能的。一种可能性是确定更新的图像帧中的显著点,并且将更新图像帧中的确定的显著点配准到初始图像帧中的显著点。具有更新的2d坐标的显著点的识别可以在确定3d坐标之前或之后或与其同时(即,并行地)进行。通常,由于头部姿势已经在初始图像帧和更新的图像帧之间改变,所以更新的2d坐标不同于初始识别的2d坐标。同样,有可能某些先前选择的显著点在更新的图像帧中不可见,通常是因为该人转动他的头使得一些显著点不再面对相机,或者因为一些显著点被相机和头部之间的物体遮挡了。然而,如果之前已经选择了足够的显著点,那么足够的数量应该仍然可见。识别这些显著点及其更新的2d坐标。

一旦已经识别出显著点并且知道更新的2d坐标,就通过使用透视n点法确定与更新的2d坐标相对应的更新的3d坐标来更新头部姿势。通常,给定世界上的一组n个3d点及其图像中对应的2d投影,透视n点是估计校准的相机的姿势的问题。然而,这等效于当给定具有3d坐标的头部的n个显著点时,相对于相机而言头部的姿势未知。当然,该方法基于以下假设:显著点相对于几何头部模型的位置没有显著变化。尽管头部及其显著点并不完全是刚性的,并且显著点的相对位置可能会有所变化(例如,由于面部表情的变化),但是通常仍然可能解决透视n点问题,而相对位置的变化可能导致一些差异,其可以将这些差异最小化以确定最可能的头部姿势。为了确定更新的3d坐标并因此确定更新的头部姿势而采用透视n点法的一大优点是,即使在初始图像帧和更新的图像帧之间发生较大的变化,该方法也工作。不必执行对头部或显著点的逐帧跟踪。只要可以在更新的图像帧中标识足够数量的先前选择的显著点,就可以始终更新头部姿势。

如果执行了多于一个姿势更新循环,则将更新的图像帧用作用于下一个循环的初始图像帧。

虽然可能的是外部地(例如,通过手动或语音输入)提供几何头部模型和头部姿势的参数,其中一些可以使用相机确定(或估计)。例如,有可能在执行至少一个姿势更新循环之前,确定相机和头部之间的距离。该距离是使用由相机记录的图像帧(例如,初始图像帧)确定的。例如,如果人正面对相机,则可以确定图像帧中的眼睛中心之间的距离。根据人体测量数据库,将其与瞳孔间平均距离(其对应于男性为64.7mm、女性为62.3mm)进行比较时,这些距离之比等于相机焦距与相机和头部之间的距离(或者更确切地说,相机与相机和眼睛基线之间的距离)之比。如果已知头部的尺寸或几何头部模型,则可能的是确定头部中心的3d坐标,从而已知头部姿势的6个dof中的3个。

还优选地的是,在执行至少一个姿势更新循环之前,确定头部模型的尺寸。当然,如何执行取决于所使用的头部模型。在圆柱形头部模型的情况下,可以确定头部在图像帧内的边界框,假设头部不倾斜(例如,当人面对相机时),头部的高度对应于圆柱体的高度。边界框的宽度对应于圆柱体的直径。可以理解,为了确定实际的高度和直径(或半径),相机和头部之间的距离也必须已知。

头部模型通常代表简化的几何形状。这可能是例如椭圆头部模型(ehm)或甚至平面头部模型(phm)。根据一个实施例,头部模型是圆柱形头部模型(chm)。换句话说,头部的形状近似为圆柱体。尽管此模型很简单,并且允许对表面的可见部分的容易的识别,但它仍然是足以产生可靠结果的足够好的近似值。然而,也可以使用其他更准确的模型来获得优势。

通常,该方法用于监测某个时间段期间的变化的头部姿势。因此,优选的是,执行多个连续的姿势更新循环。

关于如何识别先前选择的显著点有不同的选项。一般问题可以被认为是跟踪从初始图像帧到更新的图像帧的显著点。有若干种解决这种光学跟踪问题的方法。根据一个优选实施例,使用光流来识别先前选择的显著点。例如,这可以使用如j.y.bouget,“pyramidalimplementationoftheaffinelucaskanadefeaturetrackerdescriptionofthealgorithm”,intelcorporation,2001,vol.1,no.2,pp.1–9中公开的kanade-lucas-tomasi(klt)特征跟踪器来执行。当然可以理解,代替跟踪显著点,其他特征配准方法也是可能的。一种可能性是确定更新图像帧中的显著点,并将更新的图像帧中的确定的显著点配准到初始图像帧中的显著点。

优选地,通过将2d坐标从相机的图像平面投影到可见的头部表面上来确定3d坐标。相机的图像平面可以对应于ccd元素等的位置。这可以被认为是图像帧的物理位置。给定相机的光学特性,如果已知对应物体的表面,则可以将图像平面上的任何点投影或“光线跟踪”到其原点。在这种情况下,提供了可见的头部表面,并且3d坐标对应于回溯射线与该可见的头部表面的交集。可见的头部表面代表被认为是可见的头部的那些部分。应当理解,取决于所使用的头部模型,(真实)头部的实际可见表面可以或多或少地不同。

根据优选实施例,通过确定边界平面与模型头部表面的交集来确定可见头部表面。模型头部表面是所使用的几何头部模型的表面。在chm的情况下,模型头部表面是圆柱形表面。边界平面用于将模型头部表面的被认为是不可见(或被遮挡)的部分与被认为是可见的部分分开。这样确定的可见头部表面的精度部分取决于头部模型,但对于chm,如果适当地确定边界平面的位置和朝向,则结果是足够的。

优选地,边界平面平行于相机的x轴和圆柱形头部模型的中心轴。在此,x轴是与光轴垂直的水平轴。在对应的坐标系中,z轴对应于光轴,并且y轴对应于垂直轴。当然,相应轴在相机的参考帧内是水平/垂直的,并且不一定是相对于重力方向。圆柱形头部模型的中心轴贯穿圆柱体每个基座的中心。换句话说,它是圆柱体的对称轴。也可以说边界平面的法线向量由x轴和中心轴的叉积得到。该边界平面和(圆柱形)模型头部表面的交集定义了可见头部表面的(三维)边缘。

将注意,可以通过本领域技术人员已知的任何合适方法根据图像帧确定感兴趣区域。根据一个实施例,通过将可见头部表面投影到图像平面上来定义感兴趣区域。边界平面和(圆柱形)模型头部表面的交集定义了可见头部表面的(三维)边缘。将这些边缘投影到相机的图像平面上会在图像中产生对应的2d坐标。这些对应于(当前或更新的)感兴趣区域。如上所述,例如当头部旋转时,感兴趣区域至少在一个循环中包括头部的非面部区域。在那种情况下,在至少一个循环中,可见的头部表面包括非面部头部表面。

根据优选实施例,基于相关联的权重来选择显著点,所述相关联的权重取决于到感兴趣区域的边界的距离。这是基于这样的假设:即使头部姿势仅轻微变化,靠近感兴趣区域边界的显著点也可能不属于实际头部,或者可以更可能被遮挡。例如,一个这样的显著点可能属于人的耳朵,并且因此当人面对相机时是可见的,但是即使人只是稍微转动头部其也被遮挡了。因此,如果在距感兴趣区域的边界较远的位置检测到足够的显著点,则可以丢弃较靠近边界的显著点。

另外,可以基于显著点的权重来执行透视n点法。例如,如果透视n点法的结果不确定,则可以完全忽略那些在更接近感兴趣区域的边界处检测到的显著点,或者可以容忍在确定与这些显著点相关联的更新的3d坐标时出现的任何不一致之处。换句话说,当确定更新的头部姿势时,离边界较远的显著点被视为更可靠且具有更大的权重。这种方法也可以称为“距离变换”。

如果执行若干个连续的姿势更新循环,则最初指定的感兴趣区域通常在一段时间后不再适合。这将导致在更新显著点时出现困难,因为检测将发生在与头部位置不良好对应的图像帧的区域中。因此,优选的是,在每个姿势更新循环中,感兴趣区域都被更新。通常,在更新头部姿势之后执行对感兴趣区域的更新。

本发明还提供了一种用于头部姿势估计的系统,包括单眼相机和处理设备,所述系统被配置为:

-提供由相机记录的示出头部的初始图像帧;以及

-用以下步骤执行至少一个姿势更新循环:

-在感兴趣区域内识别并选择头部在初始图像帧中具有2d坐标的多个显著点;

-使用头部的几何头部模型,确定所选择的显著点的与头部姿势相对应的3d坐标;

-接收由相机记录的示出头部的更新的图像帧;

-在更新的图像帧内识别具有更新的2d坐标的至少一些先前选择的显著点;

-通过使用透视n点法确定与更新的2d坐标相对应的更新的3d坐标来更新头部姿势;以及

-使用更新的图像帧作为用于下一个姿势更新循环的初始图像帧。

可以通过有线或无线连接将处理设备连接到相机,以便从相机接收图像帧,并且可选地将命令传输到相机。可以理解,通常处理设备的至少一些功能是软件实现的。

上面已经关于对应的方法描述了由处理设备执行的其他术语和功能,并且因此将不再再次解释。

本发明系统的优选实施例对应于本发明方法的实施例。换句话说,该系统(或者通常是该系统的处理设备)优选地适于执行本发明方法的优选实施例。

附图说明

通过下面参考附图,根据非限制性实施例的以下详细描述,本发明的另外的细节和优点将变得显而易见,在附图中:

图1是本发明的系统和头部的示意图;

图2是示出本发明方法的实施例的流程图;

图3示出了图2的方法的第一初始化步骤;

图4示出了图2的方法的第二初始化步骤;并且

图5示出了图2的方法的一系列步骤。

具体实施方式

图1示意性地示出了根据本发明的用于头部姿势估计的系统1和人的头部10。系统1包括单眼相机2,其特征在于垂直y轴、水平z轴(其对应于光轴)和垂直于图1的绘图平面的x轴。相机2(有线或无线地)连接到处理设备3,所述处理设备3可以接收由相机2记录的图像帧i0、in、in+1。相机2指向头部10。系统1被配置为执行用于头部姿势估计的方法,现在将参考图2至图5对其进行说明。

图2是示出本发明方法的一个实施例的流程图。在开始之后,如图3和图4所示,相机记录了初始图像帧i0。任何图像帧的“物理位置”对应于相机2的图像平面2.1。初始图像帧i0被提供给处理设备3。在随后的步骤中,处理设备3确定相机和头部10之间的距离zeyes,或者更确切地说,在相机和眼睛的基线之间的距离,所述距离(如图3所示)由给出,其中,f是相机的焦距(以像素为单位),δpx是图像帧i0上眼睛中心之间的估计距离,并且δmm是瞳孔间平均距离,其根据人体测量数据库对应于男性的64.7mm和女性的62.3mm。如图3至图5所示,真实头部10由圆柱形头部模型(chm)20近似。在初始化期间,假定头部10处于垂直位置并面向相机2,因此,chm20也竖立,其中心轴23平行于相机2的y轴。中心轴23穿过chm20顶部和底部底座的中心ct、cb。

zcam表示chm20的中心与相机2之间的距离,并且等于zeyes与从头部10的中心到眼睛基线之间的中点的距离zhead的总和。zcam通过与chm的半径r相关。如图4所示,chm20的尺寸可以由图像帧中的边界框确定,所述边界框定义了感兴趣区域30。边界框的高度对应于chm20的高度,而边界框的宽度对应于chm20的直径。当然,图像帧i0中的相应量需要按因子进行缩放,以便获得3d空间中的实际量。给定边界框的左上角、右上角、左下角和右下角的2d坐标{ptl,ptr,pbl,pbr},处理设备3计算类似地,通过计算chm20的高度h。

在zcam被确定(或估计)的情况下,3d空间中面部边界框的角(即,{ptl,ptr,pbl,pbr}和chm20的顶部和底部底座的中心ct、cb)可以通过将对应的2d坐标投影到3d空间中并将其与关于zcam的信息组合来确定。

到目前为止描述的步骤可以视为初始化过程的一部分。一旦做到这一点,该方法就继续参考实际头部姿势估计的步骤,现在将参考图5对其进行描述。这些步骤是姿势更新循环的一部分,其如图2的右半部分所示。

虽然图5示出了由相机2记录并提供给处理设备3的初始图像帧in,该初始图像帧in可以与图3和图4中的图像帧i0相同。根据由处理设备3执行的方法的一个步骤,在感兴趣区域30内识别并选择多个显著点s(由图5中的黑底白字数字1指示)。这样的显著点s位于初始图像帧in的纹理区域中,并且可以是眼睛、嘴、鼻子等的角。为了识别显著点s,可以使用诸如fast之类的合适算法。显著点s由图像帧i0中的2d坐标pi表示。权重被指派给每个显著点s,所述权重取决于显著点s离感兴趣区域30的边界31的距离。相应显著点s越靠近边界31,其权重就越低。可能的是没有选择权重最低的显著点s,而是因为(相当)不可靠而将其丢弃。这可以用来增强该方法的总体性能。应当注意,感兴趣区域30除了面部区域32之外还包括若干非面部区域,例如颈部区域33、头部顶部区域34、头部侧面区域35等。

在所选择的显著点s的2d坐标pi已知的情况下,确定对应的3d坐标pi(由图5中的黑底白字数字3指示)。这是通过将2d坐标投影到chm20的可见头部表面22上来实现的。可见头部表面22是chm20的表面21的被认为对相机2可见的一部分。在chm20的初始头部姿势的情况下,可见头部表面22为其侧表面的一半。3d坐标pi也可以看作是射线40与chm20的可见头部表面22相交的结果,所述射线40从相机2的光学中心处开始并穿过像平面2.1处的相应显著点s。射线40的方程式定义为p=c+kv,其中,v是平行于从相机的光学中心c到p的线的向量。通过求解几何模型的二次方程来计算标量参数k。

在另一步骤中,将已由相机2记录的更新的图像帧in+1提供给处理设备3,并且在该更新的图像帧in+1内识别至少一些先前选择的显著点s(在图5中用黑底白字数字2指示)以及更新的2d坐标qi。可以使用光流来执行该识别。虽然图5中的标签指示在确定对应于初始图像帧in的3d坐标pi之前执行了更新的图像帧in+1内的识别,这些步骤的顺序可以如图2的流程图所指示地被反转或它们可以并行执行。

在另一步骤中(在图5中由黑底白字数字4指示),处理设备3使用更新的2d坐标qi和3d坐标pi来解决透视n点问题,并且因此更新头部姿势。头部姿势通过计算由平移t和旋转r得到的更新的3d坐标p'i使得p′i=r·pi+t并且通过迭代方法将3d特征重新投影到图像平面上和它们相应检测到的2d特征之间的误差最小化来计算。在误差的定义中,也可能考虑与相应显著点s相关联的权重,使得从具有低权重的显著点s引起的误差对总误差的贡献较小。将平移t和旋转r应用于旧的头部姿势会产生更新的头部姿势(由图5中的黑底白字数字5指示)。

在另一步骤中,感兴趣区域30被更新。在该实施例中,感兴趣区域30由chm20的可见头部表面22在图像上的投影定义。可见头部表面22转而由头部表面21与边界平面24的交集定义。边界平面24具有法线向量,所述法线向量是由平行于相机2的x轴的向量与平行于chm20的中心轴23的向量之间的叉积产生的。换句话说,边界平面24平行于x轴并平行于中心轴24(参见图5中的黑底白字数字6)。chm20的可见头部表面22的角{p′tl,p′tr,p′bl,p′br}由模型头部表面21和边界平面24之间的最远相交集给出,而新的感兴趣区域30由将可见头部表面22投影到图像平面2.1上(由图5中的黑底白字数字7指示)而得到的。

更新的感兴趣区域30再次包括非面部区域,例如颈部区域33、头部顶部区域34、头部侧面区域35等。在下一个循环中,可以选择来自这些非面部区域33-35中的至少一个的显著点。例如,头部侧面区域35现在更靠近感兴趣区域30的中心,使得有可能从该区域中选择显著点,例如耳朵的特征。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1