(
映维网Nweon
2024年10月15日
)Apple
Vision
Pro的主要输入方式包括手势,所以手势识别非常重要。例如,在一份专利申请中,
苹果
就介绍捏合手势的识别和拒绝。
图1显示检测输入手势的技术的流程图。
流程图100从传感器数据102开始。传感器数据可以包括从用户的手或多只手捕获的图像数据和/或深度数据。传感器数据可以从电子设备的传感器捕获,例如头戴式设备的摄像头。
在一个实施例中,传感器数据102可应用于手部追踪网络104。手部追踪网络可以是经过训练以估计手或多只手的物理状态的网络。手部追踪网络104预测手部姿势106。
手部追踪网络104可以进一步配置为提供触碰数据。触碰数据可以包括关于对于给定的一帧或多帧,是否在手上的两个区域之间发生触碰的预测。例如,可以训练机器学习模型来预测拇指和食指是否接触。
需要注意的是,触碰指的是两个表面之间的接触,不管意图如何。捏合则是是以产生相应输入动作的意图执行的触碰。
在一个实施例中,手部追踪可以基于传感器数据102和/或手部姿势数据106预测触碰是否发生。
根据一个或多个实施例,手势确定框架110提供对传感器数据102中呈现的特定姿势是否有意的确定。即,确定手的分类姿势是否有意。当确定的手部姿势包括触碰,例如捏,则手势确定框架110可以使用由手部追踪网络104提供的触碰信号108来确定是否执行有意的手势。
UI手势处理模块114可以配置为基于手势信号112启用用户输入动作。一个特定的手势,比如捏合,可与一个UI组件或类似的选择动作相关联。
在一个实施例中,如果接收到与已经启动的手势信号112相对应的取消信号,则系统可以以不同于未取消的方式处理手势。例如,UI组件可以显示为已选中但未激活等等。
图2显示用于启用手势输入的流程图。
在205,从一个或多个摄像头帧获得手部追踪数据。根据一个或多个实施例,手部追踪数据可以包括图像数据和/或深度数据。所述手部追踪数据可以从一个或多个摄像头获得,包括立体摄像头等。
在210,根据手部追踪数据确定手部姿势。设备可以考虑注视信息、UI几何形状、情景信息等。例如,注视信息可以从注视追踪数据获得或派生。注视追踪数据可以包括从传感器数据确定的注视特征。手的姿态数据可以包括关节位置和/或方向、
在215,设备可以从基于姿势的一组预定义手势分类中选择手势。
在220,设备确定手势的意向性分类。手势确定框架110可以进一步确定特定手势的意向性。意向性可能表明,通过执行手势,用户打算启用关联的输入操作。这种确定可以减少用户无意输入的次数。
意向性可以根据手部跟踪数据以及其他数据来确定。在一个实施例中,意向性可以基于当前摄像头帧,以及捕获手势的其他摄像头帧,或捕获手势之前和/或之后的手的摄像头帧来确定。意向性可以以意向性分数的形式确定,意向性分数必须满足阈值分数,以便将手势信号传递给UI手势处理模块。
如果在225意向性得到满足,则流程图继续到230,并且启用与手势相关的用户输入动作。启用用户输入操作可以包括触发UI手势处理模块114以启动与手势相关的输入操作。相比之下,如果在225不满足意向性,则流程图在第235结束,亦即忽略用户输入手势。
如上所述,可以将手势确定框架配置为生成手势的意向性分类。手势确定框架110可以配置为估计手部的姿势或手势,并确定手势是否打算用于触发用户输入动作。
图3显示了对手势的意向性进行分类。
在305,基于来自手部追踪网络的情景数据检测触碰事件。例如,可以基于从手部追踪网络104接收到的触碰信号108来检测触碰事件。
触碰事件可以通过多种方式确定。在一个实施例中,可以基于训练过的网络、一组启发式方法等来预测给定帧的触碰事件。在一个实施例中,触碰事件可以包括多个阶段。这样,即使两个手指之间的接触没有得到确认,触碰信号都可以指示触碰正在发生。作为另一个例子,当至少部分手遮挡时,可能会发出触碰事件的信号。
在310,触碰阶段是从手部追踪数据确定。对于给定的帧,触碰阶段可以指示手指当前处于触碰动作的哪个阶段。在一个实施例中,确定意向性的特征可以根据手势的当前状态而变化。对于包含捏或其他触碰操作的手势,手势当前所处的阶段可能会影响启用、取消或拒绝相关输入操作的能力。
在315,可以从手部跟踪数据和/或附加数据确定low-level特征。low-level特征的确定不考虑意图。low-level的例子包括下捏时的捏速、手腕弯曲、手指弯曲、接近程度、手的速度等等。
在320,估计high-level特征。可以基于手部追踪数据、确定的触摸阶段和/或估计的基本特征来确定high-level特征。high-level特征可以直接确定动作的意图性。特别地,high-level特征可以指示用户处于特定的使用模式。例如,如果用户处于外设使用模式,则确定用户正在使用诸如键盘的外设。由此拒绝捏合或其他手势,或者可以确定相关手势是无意的。
在325,手势确定框架110结合high-level特征和触碰阶段,以对触碰事件捕获的手势的意向性进行分类。在一个实施例中,手势确定框架110使用高级特征和触碰阶段的条件组合来对意向性进行分类。然后,可以使用分类来指示将该手势作为输入手势处理,而如果确定手势是无意的,则取消关联动作,或者忽略手势。
图4示出对触碰阶段进行分类的流程图。
在一个实施例中,特定的触碰阶段或触碰阶段之间的移动可以基于一组启发式方法来确定,启发式方法使用来自特定帧的图像数据和/或深度数据,例如来自手部追踪数据。
流程400从405开始,一只手没有追踪到。例如,在空闲阶段期间,手可以不被追踪。因为手在这个阶段没有被追踪,触碰阶段实际上可能处于进入、保持或退出阶段,但实际阶段可能无法被识别,因为手没有被追踪。例如,当手部追踪过程没有运行时,或者当触碰检测过程没有运行时,手可以不被追踪。
换句话说,手部追踪可以用于其他目的,但不用于触碰检测。
在追踪的手以可以预期触碰的方式移动时,继续415,其中检测到触碰的开始。当检测到触碰开始时,则触碰阶段处于进入阶段。在进入阶段420,触碰属于预期性,但尚未发生。
在进入阶段420之后,可以确定触碰正在发生,如425所示,或者可以确定不再发生,如检测到的触碰在455停止所示。如图425所示,当触碰确定为特定帧发生时,可以检测到持续触碰。这将致使触碰阶段进入保持阶段430。在保持阶段,触碰正在发生。换句话说,可以确定手的两个区域是接触的。例如,可以确定食指和拇指以捏合的方式接触。
返回到进入状态420,如果后续帧表明不再检测到触碰,则触碰阶段进入退出阶段440。在退出阶段440中,触碰不再被检测到。
如上所述,可基于手部追踪数据使用启发式方法来确定触碰是否已经发生。图5显示了用于确定是否发生触碰的机器学习过程。
管道500以一组帧502作为输入开始。所述帧502可以是由一个或多个摄像头捕获的手的图像帧的时序序列。整个帧可以表示一只手的运动序列,在任何特定时间可以检测到或不检测到触碰。
所述帧502可应用于位姿模型504。姿态模型504可以是经过训练的神经网络,配置为基于给定时间的给定帧预测手的3D姿态508。即,可以将帧集502的每一帧应用于位姿模型504,生成三维位姿508。因此,姿态模型可以预测手在特定时间点的姿态。
在一个实施例中,几何特征512可以从3D位姿508导出。几何特征可以指示手关节之间的关系特征。在一个实施例中,所述3D位姿508可以指示关节在手上的位置和位置,而所述几何特征512可以指示关节之间的空间关系。例如,所述几何特征512可以表示两个关节之间的距离等。
帧502可以另外应用于编码器506,编码器506训练为从指示手的外观的特定时间为给定输入帧生成latent值。外观特征510可以是可以从框架502中识别的特征,但对姿势不是特别有用。因此,外观特征可能被姿态模型504忽略,但在管道500中可能有用,可用于确定是否发生触碰。
例如,外观特征510可以是几何特征512或3D姿势508的补充特征,以进一步确定特定动作520的目标,例如是否发生了触碰。根据一个实施例,编码器506可以是与姿态模型504相关的网络的一部分,使得编码器可以使用一些姿态数据来预测外观特征。另外,3D姿势508和外观特征510可以通过单个模型来预测。编码器506的结果可以是一组外观特征510。
融合网络514配置为接收作为输入的几何特征512、3D姿态508和外观特征510,并且每次生成一组编码516。融合网络514可以以任意数量的方式组合几何特征512、3D姿势508和外观特征510。例如,可以在组合中以不同的方式对各种特征进行加权,或者以其他方式组合以每次获得一组编码516。
然后,编码通过一个时间网络518运行,每次确定一个动作520。动作520可以指示是否发生了触碰或触碰阶段的变化。时间网络518可以考虑用于确定动作520的特定时间的帧,以及帧集502中的其他帧。
根据一个实施例,动作信号520可以在后处理步骤中进一步细化。图6示出了处理遮挡的手以进行手势识别的流程图。
最初,接收到先前帧的触碰信号。例如,可以根据来自手部追踪网络的数据来确定触碰信号。
为每一组帧获得触碰预测分数。帧集的触碰预测分数可以包括当前帧分数,以及先前的帧分数。帧分数可以基于一个训练成基于时间图像数据来预测触碰是否在给定时间发生的网络。
后处理层可以将姿态模型作为输入输出。如上所述,就图5而言,姿态模型可以在给定时间内生成3D姿态数据508。姿态模型504可以产生额外的输出,例如遮挡分数606、关节不确定性分数608和悬停距离不确定性分数610。
遮挡分数606表示被遮挡的概率。关节不确定性评分指的是对特定关节的预测有多确定。悬停距离不确定性分数表示姿态模型504预测悬停距离的确定性,例如手的两个部分之间的距离。
后处理层包括时间分数适应。时间分数适应可以采用当前帧分数,以及来自触碰预测分数的先验帧分数和遮挡分数来生成修改后的当前帧分数。
根据一个实施例,时间分数适应基于遮挡修改特定帧分数,使得分数的变化响应于遮挡而受到抑制。时间评分适应可以考虑所有关节或关节子集的遮挡评分,例如给定手势的相关关节。例如,为了检测捏合,可以考虑食指和拇指的指尖,但可以忽略其他关节。根据一个或多个实施例,由于可以考虑运动而暂时考虑遮挡得分。
根据一个实施例,当前帧分数可以与具有指示捏合的“完成”或“中断”阈值范围内的值相关联。在修改后的当前帧分数设置阈值之前,后处理层可以考虑其他的不确定性值。
例如,在检测食指和拇指之间的触碰时,不确定性参数可以包括捏合评分、捏合不确定性评分、捏停距离不确定性评分。所述不确定参数的组合可用于生成不确定评分。不确定性分数可以指示是否对修改的当前帧分数应用滤波器以获得触碰分数。
然后,可以将触碰分数设定为626的阈值。在一个实施例中,附加过滤器624可以基于3D姿态,例如给定的手的旋转来应用。根据触碰分数与阈值的比较,可以确定最终的触碰信号。触碰信号可以指示触碰阶段的变化。
相关专利
:
Apple Patent | Pinch recognition and rejection
名为“Pinch recognition and rejection”的苹果专利申请最初在2023年9月提交,并在日前由美国专利商标局公布。