手势交互为AR/VR用户提供了一种低成本、易于学习的输入命令方式。但对于公共场合,用户希望以社会可接受的程度进行操作,比如说更加微妙的手势。然而,对于微妙的手势,在不同场景中可能会造成误触发。
所以在名为“Gesture recognition based on likelihood of interaction”的专利申请中,微软提出可以利用AI神经网络来帮助识别手势。
图1示出了佩戴头戴式显示设备105并站在房间110中的用户100的示意图。用户100可以通过手势与虚拟内容交互,而不需要持有控制器或其他输入设备。
在一个实施例中,可以利用第一神经网络,以确定用户是否基于包括手、身体、头部和眼睛数据输入的数据帧序列执行手势交互。通过这种方式,第一神经网络可以评估用户是更有可能与NUI界面交互还是与现实世界的对象交互。然后,第二神经网络使用基于指示可能性调整的参数在预定窗口期间执行手势交互识别。
微软指出,模型可以利用对接收的数据帧序列的分析来生成手势交互的可能性,然后可将其用作手势交互识别机器的输入,以允许系统更准确地识别具有更宽松约束的更广泛手势。
如果用户与AR UI进行手势交互的可能性很高,则对用户意图的准确预测允许放松手势要求,如果用户与AR UI进行交互的可能性较低,则可以应用更严格的手势要求。这种方法可以产生更准确的手势识别并减少误报。
另外,如果表明用户不打算操作UI,则可以使用第一神经网络的输出来完全禁用手势输入。可以推断一个用手执行现实世界任务的用户,例如吃饭、洗手、打字,然后禁用UI以防止误报输入。这种方法可以实现预测,例如提前预测用户可能会做什么,并相应地设置手势交互识别参数。
图2示意性地示出头戴式显示设备200的示例。头显200包括手势识别机216和眼动追踪机218。
手势识别机216可以包括一个或多个神经网络,用于处理来自头显200和其他地方的传感器的输入数据,以识别由用户执行的手势。手势识别机器216可以使用由头显200的传感器产生的示例数据,或模拟实际传感器数据的合成传感器数据,以及指示基本事实的监督标签来训练,例如手部运动是否为手势,如果是手势,则是什么类型的手势。
手势识别机器216所采用的神经网络可以基于一系列参数评估输入数据,而相关参数可以基于传感器数据、操作条件等进行调整,以允许神经网络对手势进行更准确的识别。
在一个实施例中,手势识别机器216识别深度视频中一个或多个人类主体的至少一部分。通过适当的深度图像处理,可以将深度图的给定轨迹识别为属于人体主体。在更具体的实施例中,可以识别属于人体主体的像素,并且可以从这些像素派生出人体的广义几何模型。
手势识别机器216可以以任何合适的方式标记像素。例如,可以训练人工神经网络用适当的索引/标签对每个像素进行分类。通过这种方式,可以通过计算识别手或其他身体部位的不同特征。与手或其他身体部位相关联的现实世界对象可以一般地识别,或者可以使用手势识别机器216和/或其他深度图像分析机器分配身份。
手势识别机器216可以从一帧到另一帧跟踪不同的身体部位,从而允许识别不同的手势。例如,可以从一帧到另一帧追踪手指的三维位置,从而允许识别诸如手指位置,手指角度,手指速度,手指加速度,手指对手指接近度等参数。
用户眼睛的位置可以通过眼动追踪机218和/或手势识别机216来确定。眼动追踪机器218可以从面向内的注视追踪摄像头214接收图像数据,并且可以使用一个或多个神经网络或其他机器学习设备评估数据。在
图3示意性地显示了用于至少基于用户执行手势交互的可能性评估手势输入的系统300。系统300可以是头戴式显示器。
第一神经网络315可以评估输入数据,例如来自数据预处理机310的预处理传感器数据、来自传感器套件305的原始传感器数据、UI数据320、来自辅助设备输入325的数据以及启发式评估数据330。
第一神经网络315可以评估一系列数据帧的输入数据,并输出手势交互335的可能性的指示,例如用户在一个或多个数据帧的预定窗口期间与用户界面执行一个或多个后续手势交互的可能性的指示。
在一个实施例中,单个数据帧可以提供明确的指示,表明用户不打算在随后的数据帧中用手进行手势交互,例如抱着婴儿,从烤箱中取出砂锅。在其他场景中,协同考虑多个顺序帧可能允许第一神经网络315更准确地评估用户的手部运动的情景。
换句话说,第一神经网络315可以推断用户是否可能通过手势输入与UI交互,不太可能,根本不可能,或者已经执行交互等等。例如,可能性可以作为0到1之间的实数输出,其中0表示用户根本不可能在预定窗口中执行手势,而1表示已经与UI交互或已经开始执行手势。
然后可以将手势交互的可能性335作为输入馈送到第二神经网络340。第二神经网络可以训练成识别指示用户当前是否正在执行多个后续手势交互中的一个或多个的特征。
在一个实施例中,第二神经网络340可以是多个神经网络中的一个,每个神经网络训练以识别不同的手势交互或手势交互集。神经网络中的每一个都可以提供手势交互的可能性335。然后基于手势交互的可能性335调整第二神经网络340的手势识别参数345。
第二神经网络的节点可以与可调参数相关联,当参数改变时,改变第二神经网络340的特定输出的可能性。手势识别参数345可以包括节点系数、连接权重、梯度等。这样,即使由第二神经网络340计算相同的输入数据,都可以基于可调参数的值产生不同的输出数据。
因此,手势交互预测的可能性可以用来减少无意的交互,如点击、抓取和拖动等。微软指出,实现所述系统的技术效果是改进了人机交互,减少了因响应非故意交互而进行的错误计算所产生的能量消耗。
第二神经网络340可以应用调整后的手势交互识别参数345来确定手势交互350,包括用户是否进行了手势输入以及手势输入的种类。可以将手势交互确定350传递给UI控件355以进行下游处理。
第一神经网络315和/或第二神经网络340可以是手势识别机的组件,例如手势识别机216,其可以配置为分析与用户对应的深度图的像素,以确定每个像素对应于用户身体的哪个部分。为此,可以使用各种不同的身体部位分配技术。
在一个实施例中,机器学习可用于为每个像素分配身体部分索引和/或身体部分概率分布。机器学习方法通过参考从先前训练的已知姿势集合中学习的信息来分析用户。
例如,在有监督的训练阶段,可以观察到各种各样的人类受试者摆出各种姿势,包括手势手势。训练器提供标记观察数据中的各种机器学习分类器的ground truth值注释。然后使用观察到的数据和注释生成一个或多个机器学习算法,将输入映射到所需的输出。
在一个实施例中,用于追踪特征位置的虚拟骨架或其他数据结构可能适合于与用户对应的深度和/或彩色视频的像素。
图4A显示了一个示例虚拟骨架400。所述虚拟骨架包括在多个骨段405。可以将身体部位名称分配给每个骨骼节和/或每个关节。在图4A中,每个骨骼段405的身体部位名称用一个附加的字母表示:A代表头部,B代表锁骨,C代表上臂,D代表前臂,E代表手,F代表躯干,G代表骨盆……。
在更具体的实施例中,可以进一步处理与用户的手相对应的点云以显示手的骨骼子结构。
图4B示出用户的虚拟骨架400的示例手部部分415。手部分包括手腕关节420、手指关节425、相邻手指节430和相邻指尖435。关节和节可以组合在一起以形成使用者的手的一部分,例如手掌部分440。用户的每只手都可以独立评估。
在其他示例中,可将与用户的手相对应的深度图的原始点云作为输入数据帧的一部分提供给第一神经网络315和/或第二神经网络340。
通过任何合适的最小化方法,骨骼节段的长度和关节的位置和旋转角度可以调整,以符合深度图的各种轮廓。通过这种方式,每个关节分配各种参数。通过分析各种骨骼关节和/或节段的位置变化和相应的运动,可以确定图像用户的手势或动作。
无论用于提取特征的方法如何,一旦识别,每个特征可以在每帧的基础上跨深度帧和/或图像数据进行追踪。
在一个实施例中,接收用户一手的手部追踪数据包括接收环境的深度数据,将虚拟骨架拟合到接收深度数据的点云,将手关节分配给虚拟骨架,并在连续深度图像中跟踪分配的手关节的位置。
在所述实施例中,将指定的手关节提供给第一神经网络315和第二神经网络340。在其他示例中,环境的原始深度数据可以提供给神经网络。
回到图3,传感器305的朝内摄像头可以记录如图2所述的用户眼睛的运动和定位,并且可以将所诉数据提供给包括在数据预处理机310中的眼动追踪机。
眼动追踪数据可以作为原始3D矢量、作为3D矢量与显示的3D内容的交点、和/或作为与提取的表面网格的交点输入到第一神经网络315。眼动追踪数据可以单独考虑,或可以与其他输入结合考虑。
眼动追踪数据可以与用于显示内容的3D位置数据一起考虑。如果眼动追踪数据表明全息图在用户的视场中,则可以认为用户更有可能打算与全息图或其他显示对象进行交互。
如果注视向量表明用户正在看向别处,则用户可能被认为不太可能打算与此类全息图交互。直接注视数据可以通过表明用户最近一直在看或以其他方式关注这样的全息图、用户与全息图交互的历史等数据来增强。
例如,如果用户最近在虚拟键盘上打字,则更有可能认为下一个类似于敲击虚拟键的手势是有意的。
在一个实施例中,可以训练神经网络315来评估用户是否在手中持有一个物体,从而不太可能执行手势输入。
另外,可以提供机器学习方法以外的方法来确定用户是否用一只手或两只手握住物体。作为示例,图5示出用于确定用户是否持有对象的启发式方法。
在500,用户的手505拿着烧杯507。
在510,从环境的深度图中提取用于包括手505和任何相关对象的感兴趣区域512的表面网格。
在520,显示由手部追踪系统生成的手部505的表面网格522。然后可以从表面网格512中减去表面网格522,产生仅用于烧杯507的表面网格527。如果相减后表面网格中剩余的体素总数超过阈值,则可以推断手正在拿着一个物体。
无论方法如何,关于是否存在手中物体的二元确定可以作为第一神经网络515和/或第二神经网络340的输入提供。
启发式330可进一步用于使用规则分类评估原始和/或预处理的输入。例如,可以配置启发式330来评估用户的手的构象、一个或多个手关节的绝对和/或相对运动。可以在一个或多个数据帧上追踪各种手关节的运动和速度,并因此应用于手势识别的当前和/或未来帧。
图6显示了用户600的右手,其具有标记为小指尖602、无名指尖604、中指尖606、食指尖608、拇指尖610和手掌612的一组特征点。可以注册每个特征点在空间中移动的速度。手掌612与小指尖端602、无名指尖端604、中指尖端606之间的距离可以用来确定用户的手是否卷曲。
拇指指尖610和食指指尖608之间的距离620可用于确定何时可以触发或可能发生捏选择手势。另外,在拇指尖端610和食指尖端608之间的速度622可用于补偿高于阈值速度的运动中的滞后。
无名指指尖604和中指指尖606之间的速度差630可用于确定用户是否正在打字、弹钢琴等。类似地,无名指尖端604和小指尖端602之间的速度差632可用于识别诸如打字之类的活动。
图7显示了执行捏选择手势的用户的左手700。可以追踪拇指尖端710和食指尖端712,提取相对距离(715)和速度(717)。
可以为手指设置一系列的gate。包括第一gate720、第二gate722、第三gate724和悬停gate726。
在本例中,第一gate720表示拇指尖710和食指尖712在第一距离上一起移动的位置,第二gate722表示拇指尖710和食指尖712在第二距离上一起移动的位置,第二距离小于第一距离。第三gate724表示拇指尖710与食指尖712分开移动的位置,悬停gate 726表示拇指尖710与食指尖712保持在大于第一距离的第三距离的位置。
如果触发第一gate720,则可以触发到达第二gate722的计时器。如果触发第二gate722,则可以启动缩放选择事件。如果触发第三gate724,则停止缩放选择事件。
如果触发悬停gate,则可以向用户提供显示功能,例如在用户注视点处的圆圈。如图6所示的卷曲的手可用于调整门控值。如果用户的手掌移动超过阈值速度,则捏选择手势识别标准可能被禁用。一个或多个手关节的速度可以用来平滑启发式计算和/或抵消追踪滞后。
可以向第二神经网络340提供具有类别标签的手势交互可能性335,例如准备交互/高可能性,模糊意图,不准备交互/低可能性,或当前交互和/或与实际数字标签,例如表示可能性连续体的从0到1的数字。
手势交互的可能性335可以提供给第二神经网络340内的多个特定于手势的神经网络,或者提供给经过训练以识别多个不同手势的单个神经网络。
如果指示用户不准备进行交互,第二神经网络340可以有效地忽略相关输入信号,从而减少误报。相反,如果指示用户准备与全息内容交互,则可以指示用户在大约一秒钟内启动手势交互。
因此,第二神经网络340可以放松手势识别参数345以增加灵敏度,因为不太可能发生误报。以这种方式,第二神经网络340可以具有更高的灵敏度,以便允许识别更微妙的手势,例如更容易被社会接受的手势。由此产生的技术效果是减少了用户对计算设备的输入负担。
如图3所示,第一神经网络315可以向UI控制355以及第二神经网络340提供手势交互335的确定可能性。这可能允许UI控件355在预期的手势输入之前调整显示内容,或者假设用户不会提供输入。
因此,UI控件355可以增加或减少诸如可视性的显示内容。例如,给定高于阈值的手势交互可能性,可以会增加功能的大小或可见性,调整功能的外观以向用户呈现多个选项等等。
第一神经网络315可以基于对最近和/或当前数据帧序列的分析,输出用于预定帧窗口的交互可能性。预定的帧窗口可以包括当前数据帧和/或后续或未来帧。通过分析多个连续帧,第一神经网络315可以产生比使用单个帧更准确的预测。
名为“Gesture recognition based on likelihood of interaction”的微软专利申请最初在2022年2月提交,并在日前由美国专利商标局公布。