用于手部跟踪的方法和***
相关申请的交叉参考
本申请是基于2017年4月4日申请的美国临时申请第62/481,529号且要求所述申请的权益,所述申请的全部内容以引用的方式并入本文中。
技术领域
本公开大体上涉及用于计算机视觉的方法和***,且更具体地说,涉及用于手部跟踪的方法和***。
背景技术
3D用户交互实施于许多新的计算平台或应用程序,例如虚拟现实(VR)和增强现实(AR)。已经提出各种方法来为3D用户交互呈现最佳效果,而许多挑战仍存在于实现无缝结果的路径。
发明内容
本公开的各种实施例可包含用于手部跟踪的***、方法和非暂时性计算机可读介质。根据一个方面,一种用于手部跟踪的***可包括:头戴式显示器,其可由用户穿戴;及手部跟踪摄像机模块,其连接到所述头戴式显示器且包括一对立体摄像机或一深度摄像机中的至少一个。所述手部跟踪摄像机模块可配置成捕捉所述用户的至少一个实体手部的图像。所述头戴式显示器可配置成至少基于所述图像在虚拟环境中呈现类似于所述实体手部的虚拟手部以由所述用户查看。
根据另一方面,一种用于手部跟踪的方法可包括:通过手部跟踪摄像机模块捕捉用户的至少一个实体手部的图像;及至少基于所述图像通过可由用户穿戴的头戴式显示器在虚拟环境中呈现类似于所述实体手部的虚拟手部以由所述用户查看。手部跟踪摄像机模块连接到所述头戴式显示器且包括一对立体摄像机或一深度摄像机中的至少一个。
根据另一方面,一种用于手部跟踪的设备可包括:头戴式显示器;手部跟踪摄像机模块,其连接到所述头戴式显示器且包括一对立体摄像机或一深度摄像机中的至少一个;处理器;和非暂时性计算机可读存储介质,其存储指令,所述指令在由所述处理器执行时,使得所述处理器执行一种方法。所述方法包括:(步骤14)使得所述手部跟踪摄像机模块捕捉穿戴所述头戴式显示器的用户的至少一个实体手部的图像;(步骤15)获得当前帧中的所述图像和上一帧中的经确定骨架关节或经确定3D物体姿势中的至少一个作为输出以执行手部及物体检测算法,从而确定在所述当前帧中所述实体手部是否握持物体;(步骤16)响应于确定所述实体手部未握持物体:执行3D手部骨架关节识别算法以确定所述当前帧中的26个自由度的所述实体手部的3D骨架关节,使得所述头戴式显示器至少基于经确定3D骨架关节在虚拟环境中呈现类似于所述实体手部的虚拟手部以由所述用户查看,及将所述经确定3D骨架关节反馈到用于确定在下一帧中所述实体手部是否握持任何物体的所述手部及物体检测算法;(步骤17)响应于确定所述实体手部握持物体:执行3D手部骨架关节及鲁棒物体姿势识别算法以确定所述当前帧中的26个自由度的所述实体手部的3D骨骼关节和所述物体的3D物体姿势,使得所述头戴式显示器至少基于经确定3D骨架关节在虚拟环境中呈现类似于所述实体手部的虚拟手部以由所述用户查看,及将所述经确定3D骨架关节和所述经确定3D物体姿势反馈到用于确定在下一帧中所述实体手部是否握持任何物体的所述手部及物体检测算法;及(步骤18)为所述下一帧递归地执行(步骤14)到(步骤17)。
本文中所公开的所述***、方法和非暂时性计算机可读介质的这些及其它特征,以及结构的相关元件的操作和功能的方法和部分的组合及制造的经济,在参考随附图式考虑以下描述及所附权利要求书后变得更加显而易见,其中类似参考编号指定各种图式中的相应部分。然而,应明确理解图式仅仅出于说明及描述的目的,且不意在定义本发明的限制。
附图说明
图1A说明根据各种实施例的用于手部跟踪的示例性环境。
图1B说明根据各种实施例的用于手部跟踪的各种手部配置。
图2A说明根据各种实施例的用于手部跟踪的示例性***。
图2B说明根据各种实施例的用于手部跟踪的示例性***。
图3A说明根据各种实施例的用于手部跟踪的***中的示例***互。
图3B说明根据各种实施例的用于手部跟踪的***中的示例***互。
图4是说明符合本公开的示例性实施例用于手部跟踪的示例性方法的流程图。
图5是说明符合本公开的示例性实施例用于手部跟踪的示例性方法的流程图。
图6是说明符合本公开的示例性实施例用于手部跟踪的示例性方法的流程图。
图7是说明符合本公开的示例性实施例用于手部跟踪的示例性方法的流程图。
图8是说明符合本公开的示例性实施例用于手部跟踪的示例性方法的流程图。
图9是说明符合本公开的示例性实施例用于手部跟踪的示例性方法的流程图。
具体实施方式
现将详细参考示例性实施例,在附图中说明所述实施例的实例。以下说明涉及附图,其中不同图式中的相同编号代表相同或相似元件,除非另有代表。符合本发明的示例性实施例的以下说明中所陈述的实施方案并不代表符合本发明的所有实施方案。反而,其仅仅是符合与本发明相关的方面的***和方法。
用于3D用户交互应用程序中的手部跟踪的当前技术效率低且具有各种限制。典型传统途径包含基于手持式控制器的用户交互(例如,基于多个手持式控制器)、基于可穿戴装置的用户交互(例如,基于数据手套)和基于计算机视觉的徒手用户交互。首先,当前手持式控制器包含两种类型:(1)基于内部IMU(惯性测量单元)仅跟踪3D旋转(3个自由度,即3DOF)的控制器,例如Google DaydreamTM控制器,(2)基于内部IMU和外部摄像机或外部光发射器跟踪3D旋转和3D定位(6DOF)的控制器,例如Oculus TouchTM和HTC ViveTM控制器。然而,两种途径中的任一种都不能跟踪手指的活动,且在两种情况下,用户被迫用他们的手部握持控制器。因此,用户体验因必须“抓握”在控制器上而变得不自然。其次,当前基于可穿戴庄子的控制器包含数据手套,所述数据手套使用多个IMU传感器且在手套中使传感器弯曲以检测手指运动。然而,数据手套缺乏手部的绝对6DOF跟踪,需要复杂的校准,且不可以高精确度跟踪手指活动。再次,当前基于计算机视觉的徒手用户交互不具有触觉反馈,不能以极高精确度检测行为(例如,当手部呈抓握示意动作时,当需要6DOF跟踪时)。
起源于计算机技术的所要求解决方案可克服当前技术中的上述问题,以实现高精确度手部跟踪且避免现有技术中的复杂的内部软件设定和校准。在此公开的上下文中,手部根据可包含手指跟踪。在各种实施例中,所公开的***和方法可跟踪自然手部示意动作的所述手指的详细行为,而不被迫“不断抓握”。可通过执行关于摄像机输入的基于计算机视觉的算法和/或执行关于摄像机输入的融合算法和主动反馈(例如,控制器反馈)以确认行为来实现手部的3D定位和3D旋转的高精确跟踪。即,基于计算机视觉的跟踪可在具有或不具有用于提供主动反馈的***装置(例如,手套、手掌带、操纵杆、枪形物体等)的情况下实施。对于由所公开的***或方法实现的3D交互式应用程序(例如,VR、AR等),用户可在以下模式中的至少一个中通过她的手部参与各种交互(例如,与虚拟物体或环境交互):(1)通过基于计算机视觉的手部跟踪的徒手交互,(2)通过一只手徒手且另一只手握持或穿戴***装置参与交互,或(3)通过两只手握持或穿戴***装置参与交互。用户还可在三种交互模式中流畅且透明地切换,而不重置或配置***。所公开的***可通过计算机视觉直接跟踪每一手部(例如,关于腕部,关于手掌等)的6DOF姿势信息(3D旋转和3D定位),通过计算机视觉直接跟踪每一手部的26DOF手部骨架姿势信息,及/或通过用于确认手部的6DOF和26DOF姿势信息的各种传感器跟踪***装置的6DOF姿势信息。26DOF姿势信息代表每一手部的所述手指关节的自由度的总数目。26DOF姿势信息可包含手部的每一关节的姿势(定位和旋转)。26DOF的详细说明可见于标题是“用于3d手部骨架跟踪的方法和***(Method andsystem for 3d hand skeleton tracking)”的美国专利公开案第20180024641A1号中,其以引用的方式并入本文中。关于***装置(例如,嵌入***装置中的IMU)可捕捉活动数据以帮助提高由计算机视觉确定的手部的6DOF姿势信息的精确度。
在各种实施例中,所公开的***和方法由本文中所描述的各种算法实现。可将算法实施为软件算法或软件算法和硬件组件的组合。举例来说,一些算法执行可使得传感器捕捉传感器数据且使得处理器处理传感器数据。
图1A说明根据各种实施例的用于手部跟踪的示例性环境100。图1A的描述意图说明且可根据实施方案以各种方式修改。如图1A中所示出,环境100可包括可安装在头戴式显示器(HMD)103上的3D手部跟踪摄像机模块102(例如,多个立体IR摄像机或一个深度摄像机)。手部跟踪摄像机模块102可连接到HMD 103或与其分离,只要其以通信方式耦合。HMD103可由真实实体环境中的用户101穿戴在她的头部且经定位以通过她的眼睛查看。HMD103可呈现虚拟环境。用户101可查看及感知所呈现的虚拟环境,就像看到真实实体环境。用户101可使用她的手部104执行与(1)所呈现的虚拟环境中的虚拟物体和/或(2)真实实体环境中的真实实体物体的各种交互。在任一情况中,手部跟踪摄像机模块102可捕捉手部活动(和真实实体物体,如果存在)且与HMD 103一起工作以在所呈现的虚拟环境中重新创建手部活动(和真实实体物体,如果存在),犹如真实实体手部与真实实体环境中的真实实体物体交互。为此,手部跟踪摄像机模块102和/或HMD 103可实施各种算法(例如,3D计算机视觉和基于机器学习的算法)。计算机视觉和基于机器学习的算法可存储在手部跟踪***中(例如,HMD 103中、手部跟踪摄像机模块102中、耦合到HMD 103或手部跟踪摄像机模块102的云装置中等)的任何位置,且可处理摄像机捕捉的图像,转译来自图像的手部运动,及在虚拟环境中创建与虚拟物体的交互。对于此公开,用户101的两个手部或仅一个手部可:(1)远离任何物体(徒手),(2)握持不具有主动反馈的物体,或(3)握持具有主动反馈的***装置。以下参考图1B描述手部104的各种配置。
图1B说明根据各种实施例的用于手部跟踪的手部104的各种手部配置。
图1B的描述意图说明且可根据实施方案以各种方式修改。如图1B中所示出,手部配置可包含:裸手111(徒手)、握持具有主动反馈的控制器112(例如,具有按钮、触摸传感器和/或例如IMU的活动传感器)、握持具有主动反馈的控制器113(例如,具有按钮或触摸传感器、例如IMU的活动传感器和标志器),或穿戴控制器114(例如,手掌带),或握持不具有主动反馈的物体115。对于控制器113,标志器可由手部跟踪摄像机模块102和/或HMD 103跟踪。举例来说,标志器可包括有源光发射器。光发射器可发射将由构成手部跟踪摄像机模块102或HMD 103的检测器检测的红外光。对于另一实例,标志器可包括光反射器,所述光反射器配置成由构成手部跟踪摄像机模块102或HMD 103的光发射器照亮。标志器可具有球形或其它形状。对于可穿戴控制器114,手掌带可容易穿戴及脱下,且在用户放松她的手部时不会掉下。替代地,用户可使用例如传统控制器、手套、玩具等的各种其它装置。在各种实施例中,***装置可包括配置112、113和114中的控制器,且可能不包括配置115中的物体。
在各种实施例中,一种用于手部跟踪的***可包括:头戴式显示器,其可由用户穿戴;及手部跟踪摄像机模块,其连接到所述头戴式显示器且包括一对立体摄像机或一深度摄像机中的至少一个。所述手部跟踪摄像机模块可配置成捕捉所述用户的至少一个实体手部的图像。所述头戴式显示器可配置成至少基于所述图像在虚拟环境中呈现类似于所述实体手部的虚拟手部以由所述用户查看。视情况,***可包括控制器。以下参考图2A和图2B描述头戴式显示器、手部跟踪摄像机模块和控制器的配置。
图2A说明根据各种实施例的用于手部跟踪的HMD上具有处理器的示例性***200。图2A的描述意图说明且可根据实施方案以各种方式修改。所示出的组件中的一些是可选的。如图2A中所示出,HMD 103可包含以下中的一个或多个:彼此耦合的IMU、数据传送单元(例如,USB(通用串行总线)、MIPI(移动行业处理器接口)、RF(射频模块)等)、处理器(例如,CPU(中央处理单元)、GPU(图形处理单元)、视觉处理单元等)、存储器(例如,RAM)和显示器(例如,液晶显示器)。IMU可配置成感测HMD 103的3DOF旋转。存储器可配置成存储作为指令的各种算法。处理器可配置成执行各种算法。显示器可配置成示出虚拟环境。
在一些实施例中,手部跟踪摄像机模块102可包含以下中的一个或多个:彼此耦合的摄像机(例如,立体摄像机、深度摄像机等)、光发射器、IMU、存储器(例如,RAM)、处理器(例如,CPU等)和数据传送单元(例如,USB、MIPI、RF等)。手部跟踪摄像机模块102可包括一个或多个RGB(红-绿-蓝)摄像机、一个或多个深度摄像机、一个或多个IR摄像机或其组合(例如,RGB-IR摄像机、RGB-深度摄像机等)。摄像机可捕捉物体的RGB信息、IR信息和/或深度信息。举例来说,从物体发射出的IR辐射或从发光二极管接收到及因此从物体反射的IR辐射可由IR摄像机捕捉。RGB和深度信息可具有图像或视频格式。在一些实施例中,手部跟踪摄像机模块102可包括一对立体(红外)摄像机或一深度设想机中的至少一个。手部跟踪摄像机模块102可捕捉图像的数帧和与每一帧中的每一像素相关的信息。光发射器可配置成发射将由控制器104上作为标志器的反射器反射的光。IMU可配置成传感手部跟踪摄像机模块102的3DOF旋转。存储器可配置成存储作为指令的各种算法。处理器可配置成执行各种算法。
在一些实施例中,控制器104可由用户的实体手部握持或穿戴,且具有例如手套、手杖、操纵杆、手掌带等的各种配置。控制器104可包含以下中的一个或多个:彼此耦合的数据传送单元(例如,USB、MIPI、RF等)、处理器(例如,CPU等)、存储器(例如,RAM)、一个或多个按钮、一个或多个触摸传感器、IMU、触觉引擎(例如,发动机、振动机)、光发射器(或反射器)和光传感器。在一些实施例中,IMU可配置成传感控制器104的3DOF旋转。按钮可配置成传感按钮事件以作为主动反馈提供到头戴式显示器,按钮事件包括按压按钮。触摸传感器配置成将触摸事件作为主动反馈传感到头戴式显示器,触摸事件包括触摸触摸传感器。光传感器可配置成传感光以标志控制器104。触觉引擎(例如,发动机、振动器)可配置成通过产生触摸行为的机械响应而产生触摸的感觉。存储器可配置成存储作为指令的各种算法。处理器可配置成执行各种算法。
在一些实施例中,HMD 103的数据传送单元可与手部跟踪摄像机模块102及与控制器104的数据传送单元(例如,通过蓝牙、WiFi、定制2.4G等)通信及传送数据。手部跟踪摄像机模块102、HMD 103和控制器104的存储器可各自为存储指令的非暂时性计算机可读存储介质,所述指令在由相应处理器执行时,使得处理器执行以下参考图3A和图6到图9所描述的一个或多个相应方法/步骤。
图2B说明根据各种实施例的用于手部跟踪的摄像机上具有视觉处理器的示例性***210。图2B的描述意图说明且可根据实施方案以各种方式修改。所示出的组件中的一些是可选的。如图2B中所示出,***210可包括HMD 103、手部跟踪摄像机模块102和类似于图2A中所描述的那些的控制器104。此处,手部跟踪摄像机模块102的处理器可包括例如视觉处理单元。在一些实施例中,手部跟踪摄像机模块102的数据传送单元可与HMD 103及与控制器104的数据传送单元(例如,通过蓝牙、WiFi、定制2.4G等)通信及传送数据。手部跟踪摄像机模块102、HMD 103和控制器104的存储器可各自为存储指令的非暂时性计算机可读存储介质,所述指令在由相应处理器执行时,使得处理器执行以下参考图3B和图6到图9所描述的一个或多个相应方法/步骤。
图3A说明根据各种实施例的用于手部跟踪的***200中的示例***互300。图3A的描述意图说明且可根据实施方案以各种方式修改。如图3A中所示出,手部跟踪摄像机模块102可捕捉图像(例如,手部图像)且将所捕捉到的图像和/或其它传感器输出(例如,IMU数据)传输到HMD 103。控制器104的存储器可存储作为指令的IMU传感器融合算法(用于捕捉及配置IMU传感数据)和/或触摸传感算法(用于捕捉及配置触摸传感数据),所述指令在由控制器104的处理器执行时,使得处理器获得IMU信息、触摸信息和/或按钮信息且将以上信息传输到HMD 103。HMD 103的存储器可存储作为指令的视觉融合算法,所述指令在由HMD103的处理器执行时,使得处理器执行以下参考图7到图9所描述的各种方法/步骤。
在一些实施例中,控制器104不包含在***300中,且HMD 103的存储器可存储作为指令的视觉跟踪算法,所述指令在由HMD 103的处理器执行时,使得处理器执行以下参考图6所描述的各种方法/步骤。通过视觉融合算法或视觉跟踪算法中的任一个,HMD 103可处理所接收到的图像和信息以完成3D手部跟踪(通过或不通过基于3D控制器跟踪的精化),其可用于实施各种3D应用程序和/或3D呈现(例如,呈现虚拟环境和虚拟手部)。
图3B说明根据各种实施例的用于手部跟踪的***210中的示例***互310。图3B的描述意图说明且可根据实施方案以各种方式修改。如图3B中所示出,控制器104的存储器可存储作为指令的IMU传感器融合算法(用于捕捉及配置IMU传感数据)和/或触摸传感算法(用于捕捉及配置触摸传感数据),所述指令在由控制器104的处理器执行时,使得处理器获得IMU信息、触摸信息和/或按钮信息且将以上信息传输到手部跟踪摄像机模块102。手部跟踪摄像机模块102可捕捉图像(例如,手部图像)和/或其它传感器输出(例如,IMU数据)。手部跟踪摄像机模块102的存储器可存储作为指令的视觉融合算法,所述指令在由手部跟踪摄像机模块102的处理器执行时,使得处理器执行以下参考图7到图9所描述的各种方法/步骤。
在一些实施例中,控制器104不包含在***310中,且手部跟踪摄像机模块102的存储器可存储作为指令的视觉跟踪算法,所述指令在由手部跟踪摄像机模块102的处理器执行时,使得处理器执行以下参考图6所描述的各种方法/步骤。通过视觉融合算法或视觉跟踪算法中的任一个,手部跟踪摄像机模块102可处理所述捕捉到的图像和信息以完成3D手部跟踪(通过或不通过基于3D控制器跟踪的精化)。3D跟踪结果可传输到HMD 103以供实施3D应用程序和/或3D呈现(例如,呈现虚拟环境和虚拟手部)。
同样地,不管视觉处理器的布置如何(例如,在如图2A和图3A中所示出的HMD 103中,或在如图2B和图3B中所示出的手部跟踪摄像机模块102中),在一些实施例中,当用户使用徒手进行手部跟踪时,所公开的***可基于摄像机输出跟踪手部的26DOF活动以为用户产生虚拟交互。如果用户需要手部的3D旋转和3D定位的更精确的跟踪、更广泛的跟踪范围(例如,当手部在手部跟踪摄像机的视野覆盖范围之外时)、一些行为的更精确的检测(例如,抓握)或触觉反馈感觉,用户可使用提供3D旋转信息的***装置,例如3D控制器。在此情况中,***装置可(例如,从***装置的IMU)发送3D旋转信息,以帮助精化从摄像机输入获得的手部跟踪。因此,视觉融合算法可(1)通过组合26DOF手部跟踪信息和从***装置接收到的3D信息来计算手部和控制器的新的3D旋转和3D定位信息,及(2)检测手部是否正在握持所述装置及哪一手部正在握持哪一装置。
因此,通过所公开的***,用户在真实实体环境中的6DOF(3D旋转+3D定位)行为可经捕捉且实时地重塑于虚拟环境中,无论用户是否握持或穿戴外部装置。即,即使仅支持3D旋转或不具有任何主动反馈能力的装置也可用于实现6DOF交互。在装置不具有任何主动反馈能力的情况中,可基于基于视觉的手部跟踪估计装置的所述运动。
图4是说明符合本公开的示例性实施例用于手部跟踪的示例性方法400的流程图。方法400可由本文中所描述的***实施。方法400包含多个步骤,所述步骤中的一些可以是可选的。
步骤401可包含通过手部跟踪摄像机模块捕捉用户的至少一个实体手部的图像。步骤402可包含至少基于所述图像通过可由用户穿戴的头戴式显示器在虚拟环境中呈现类似于所述实体手部的虚拟手部以由所述用户查看,其中所述手部跟踪摄像机模块连接到所述头戴式显示器且包括一对立体摄像机或一深度摄像机中的至少一个。在上文中描述手部跟踪摄像机模块和头戴式显示器。参考图6到图9中的各种算法描述用于呈现虚拟手部的细节。
图5是说明符合本公开的示例性实施例用于手部跟踪的示例性方法500的流程图。方法500可由本文中所描述的***实施。方法500包含多个步骤,所述步骤中的一些可以是可选的。在一些实施例中,方法500可由用于手部跟踪的设备实施。设备可包括头戴式显示器103、连接到头戴式显示器103(或与头戴式显示器103分离且以通信方式耦合到所述头戴式显示器)且包括一对立体摄像机或深度摄像机中的至少一个的手部跟踪摄像机模块102、处理器和存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,使得处理器执行方法500。处理器和存储介质可布置在设备中的任何位置,在头戴式显示器103或手部跟踪摄像机模块102内或外部。
方法500可包括:(框501)使得所述手部跟踪摄像机模块捕捉穿戴所述头戴式显示器的用户的至少一个实体手部的图像;(框502)获得当前帧中的所述图像和上一帧中的经确定骨架关节或经确定3D物体姿势中的至少一个作为输出以执行手部及物体检测算法,从而确定在所述当前帧中所述实体手部是否握持物体;(框503)响应于确定所述实体手部未握持物体:执行3D手部骨架关节识别算法以确定所述当前帧中的26个自由度的所述实体手部的3D骨架关节,使得所述头戴式显示器至少基于经确定3D骨架关节在虚拟环境中呈现类似于所述实体手部的虚拟手部以由所述用户查看,及将所述经确定3D骨架关节反馈到用于确定在下一帧中所述实体手部是否握持任何物体的所述手部及物体检测算法;(框504)响应于确定所述实体手部握持物体:执行3D手部骨架关节及鲁棒物体姿势识别算法以确定所述当前帧中的26个自由度的所述实体手部的3D骨骼关节和所述物体的3D物体姿势,使得所述头戴式显示器至少基于经确定3D骨架关节在虚拟环境中呈现类似于所述实体手部的虚拟手部以由所述用户查看,及将所述经确定3D骨架关节和所述经确定3D物体姿势反馈到用于确定在下一帧中所述实体手部是否握持任何物体的所述手部及物体检测算法;及(框505)为所述下一帧递归地执行(框501)到(框504)。
以下参考图6描述方法500的其它细节。手部及物体检测算法,3D手部骨架关节识别算法和用于识别及跟踪手部、手部关节及由手部握持或穿戴的物体的类似算法可见于标题是“用于3d手部骨架跟踪的方法和***(Method and system for 3d hand skeletontracking”的美国专利公开案第20180024641A1号和标题是“用于3d轮廓识别和3d网格生成的方法和***(Methods and systems for3d contour recognition and 3d meshgeneration)”的美国专利公开案第20180025540A1号中,所述所有专利的全部内容以引用的方式并入本文中。3D手部骨架关节及鲁棒物体姿势识别算法和用于识别及跟踪手部关节及物体姿势的类似算法可见于标题是“用于3d手部骨架跟踪的方法和***(Method andsystem for 3d hand skeleton tracking)”的美国专利公开案第20180046874A1号和标题是“用于基于标志器跟踪的***和方法(System and method for marker basedtracking)”的美国专利公开案第20180025540A1号中,所述所有专利的全部内容以引用的方式并入本文中。
在一些实施例中,设备可进一步包括由实体手部握持或穿戴的控制器。控制器包括按钮或触摸传感器中的至少一个。按钮配置成传感按钮事件以作为主动反馈提供到所述头戴式显示器,所述按钮事件包括按压所述按钮。触摸传感器配置成将触摸事件作为主动反馈传感到所述头戴式显示器,所述触摸事件包括触摸所述触摸传感器。在此情况中,框502包括:获得当前帧中的所述图像和所述上一帧中的所述经确定骨架关节或所述经确定3D物体姿势中的至少一个作为输出以执行所述手部及物体检测算法,及获得所述手部及物体检测算法的输出和所述按钮事件或所述触摸事件中的至少一个作为输出输出到手部及控制器融合检测算法,以确定在所述当前帧中所述实体手部是否握持物体,且如果获得所述触摸事件,那么确定所述用户的哪只手触摸所述控制器。以下参考图7描述方法500的其它细节。
手部及控制器融合检测算法和用于识别及跟踪手部和控制器的类似算法可见于标题是“用于基于标志器跟踪的***和方法(System and method for marker basedtracking)”的美国专利公开案第20180025540A1号中,其全部内容以引用的方式并入本文中。
图6是说明符合本公开的示例性实施例用于手部跟踪的示例性方法600的流程图。方法600可由本文中所描述的***实施。方法600包含多个步骤,所述步骤中的一些可以是可选的。方法600可称为虚拟跟踪算法。方法600可适用于图1B的手部配置111和115。在一些实施例中,用户101可徒手地与虚拟环境交互,或通过用户的手部抓握或握持实体物体(例如,剑)以与由HMD103呈现的虚拟环境交互。不同于可提供主动反馈的按钮和活动传感器,此处的物体可能不能够将主动反馈提供到***200和210。如果实体物体存在,那么HMD 103可进一步配置成呈现类型于实体物体的虚拟物体,在所述虚拟环境中所述虚拟物体由所述虚拟手部握持。在一个实例中,当手部握持剑时,所述剑可由计算机视觉算法检测到且呈现以与虚拟环境中的虚拟物体交互,且当用户放下剑时,用户可空手与虚拟环境中的虚拟物体交互。所抓握的虚拟3D物体可根据用户如何在真实实体世界中如何移动她的手部来在虚拟环境中移动。
如图6中所示出,为了至少基于所述图像在所述虚拟环境中呈现类似于所述实体手部的所述虚拟手部以由所述用户查看,***200/210可包括处理器和存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,使得处理器执行方法600。处理器和非暂时性计算机可读存储介质可构成HMD 103或在手部跟踪摄像机模块102中。方法600可包括(步骤1)获得当前帧中的图像和上一帧中的经确定骨架关节或经确定3D物体姿势中的至少一个作为输出以执行手部及物体检测算法,从而确定在所述当前帧中所述实体手部是否握持物体。方法600可进一步包括(步骤2)响应于确定所述实体手部未握持物体:执行3D手部骨架关节识别算法以确定所述当前帧中的26个自由度的所述实体手部的3D骨架关节,至少基于所述经确定3D骨架关节呈现所述虚拟手部,及将所述经确定3D骨架关节反馈到用于确定在下一帧中所述实体手部是否握持任何物体的所述手部及物体检测算法。方法600可进一步包括(步骤3)响应于确定所述实体手部握持物体:执行3D手部骨架关节及鲁棒物体姿势识别算法以确定所述当前帧中的26个自由度的所述实体手部的3D骨骼关节和所述物体的3D物体姿势,至少基于所述经确定3D骨架关节呈现所述虚拟手部,及将所述经确定3D骨架关节和所述经确定3D物体姿势反馈到用于确定在下一帧中所述实体手部是否握持任何物体的所述手部及物体检测算法。方法600可进一步包括(步骤4)为所述下一帧递归地执行(步骤1)到(步骤3)。
在一些实施例中,手部及物体检测算法可在图像中检测左手和右手中的一个(1)手部是否没有任何物体,(2)手部是否有物体,及(3)物体。基于手部是否自由移动或握持物体,可执行不同手部骨架识别算法。不同手部骨架识别算法可包含经优化用于空手情况算法(例如,3D手部骨架关节识别算法)以输出精确手部3D骨架信息,和经优化用于手部握持物体的情况的算法(例如,3D手部骨架关节及鲁棒物体姿势识别算法)以输出手部中所握持的物体的更精确姿势(3D旋转和3D定位)且输出3D骨架信息。
图7是说明符合本公开的示例性实施例用于手部跟踪的示例性方法700的流程图。方法700可由本文中所描述的***实施。方法700包含多个步骤,所述步骤中的一些可以是可选的。方法700可称为虚拟融合算法。方法700可适用于图1B的手部配置112和114。在一些实施例中,用户可握持控制器(具有按钮和/或例如触控板的触摸传感器,但无例如IMU的活动传感器)。即,控制器可包括按钮或触摸传感器中的至少一个。按钮可配置成传感按钮事件以作为主动反馈提供到头戴式显示器,按钮事件包括按压按钮。触摸传感器配置成将触摸事件作为主动反馈传感到头戴式显示器,触摸事件包括触摸触摸传感器。
如图7中所示出,为了至少基于所述图像在所述虚拟环境中呈现类似于所述实体手部的所述虚拟手部以由所述用户查看,***200/210可包括处理器和存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,使得处理器执行方法700。处理器和非暂时性计算机可读存储介质可构成HMD 103或在手部跟踪摄像机模块102中。方法700可类似于以上所描述的方法600,除了(步骤1)包括:(步骤5)获得当前帧中的所述图像和所述上一帧中的所述经确定骨架关节或所述经确定3D物体姿势中的至少一个作为输出以执行所述手部及物体检测算法,及(步骤6)获得所述手部及物体检测算法的输出和所述按钮事件或所述触摸事件中的至少一个作为输出输出到手部及控制器融合检测算法,以确定在所述当前帧中所述实体手部是否握持物体,且如果获得所述触摸事件,那么确定所述用户的哪只手触摸所述控制器。
在一些实施例中,控制器可将按钮和触控板状态发送到HMD 103和/或手部跟踪摄像机模块102。手部及物体检测算法可在图像中检测左手和右手中的一个:(1)手部是否没有任何物体,(2)手部是否有物体,及(3)物体。另外,手部及控制器融合检测算法可获得包含按钮按压事件和触控板按压及手指运动事件的控制器的状态,以进一步精化检测(1)手部是否正在握持控制器(由于如果存在按钮事件或触控板事件,那么手部必须握持此控制器),和/或(2)哪一只手正在握持哪一控制器(例如,通过比较由基于计算机视觉的3D骨架识别检测到的手指运动与按钮或触摸传感器事件)。
图8是说明符合本公开的示例性实施例用于手部跟踪的示例性方法800的流程图。方法800可由本文中所描述的***实施。方法800包含多个步骤,所述步骤中的一些可以是可选的。方法800可称为虚拟融合算法。方法800可适用于图1B的手部配置112和114。在一些实施例中,用户可握持控制器(具有按钮和/或触控板且具有例如IMU的活动传感器)。即,头戴式显示器可包括配置成传感头戴式显示器的3D旋转的惯性测量单元(IMU),且控制器可进一步包括配置成传感控制器3D旋转以作为主动反馈提供到头戴式显示器的另一IMU。IMU数据包括所述头戴式显示器的经传感3D旋转和所述控制器的经传感3D旋转。通过IMU数据,在手部和控制器在摄像机的视野之外时,可短暂的跟踪手部和控制器的活动。
如图8中所示出,为了至少基于所述图像在所述虚拟环境中呈现类似于所述实体手部的所述虚拟手部以由所述用户查看,***200/210可包括处理器和存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,使得处理器执行方法800。处理器和非暂时性计算机可读存储介质可构成HMD 103或在手部跟踪摄像机模块102中。方法800可类似于以上所描述的方法700,除了(步骤5)包括:从图像获得当前帧中的图像、所述IMU数据和上一帧中的经确定骨架关节或经确定3D物体姿势中的至少一个作为输出以执行所述手部及物体检测算法;(步骤2)包括响应于确定所述实体手部未握持物体:执行3D手部骨架关节识别算法以确定所述当前帧中的26个自由度的所述实体手部的3D骨架关节,将所述经确定3D骨架关节和所述IMU数据输出到3D手部姿势及3D物体姿势和IMU融合算法以精化所述经确定3D骨架关节和所述经确定3D物体姿势,至少基于经精化3D骨架关节呈现所述虚拟手部,及将所述经精化3D骨架关节反馈到用于确定在下一帧中所述实体手部是否握持任何物体的所述手部及物体检测算法;及(步骤3)包括响应于确定所述实体手部握持物体:执行3D手部骨架关节及鲁棒物体姿势识别算法以确定所述当前帧中的26个自由度的所述实体手部的3D骨骼关节和所述物体的3D物体姿势,将所述经确定3D骨架关节、所述经确定3D物体姿势和所述IMU数据输出到3D手部姿势及3D物体姿势和IMU融合算法以精化所述经确定3D骨架关节和所述经确定3D物体姿势,至少基于经精化3D骨架关节呈现所述虚拟手部,及将所述经精化3D骨架关节和所述经精化3D物体姿势反馈到用于确定在下一帧中所述实体手部是否握持任何物体的所述手部及物体检测算法。
3D手部姿势及3D物体姿势和IMU融合算法和用于识别及跟踪手部姿势、物体姿势及IMU数据的类似算法可见于标题是“用于3d手部骨架跟踪的方法和***(Method andsystem for 3d hand skeleton tracking)”的美国专利公开案第20180046874A1号和标题是“用于基于标志器跟踪的***和方法(System and method for marker basedtracking)”的美国专利公开案第20180025540A1号中,所述所有专利的全部内容以引用的方式并入本文中。
在一些实施例中,控制器可将致动器和传感器状态发送到HMD 103和/或手部跟踪摄像机模块102。手部及物体检测算法可在图像中检测左手和右手中的一个,(1)手部是否没有任何物体,(2)手部是否有物体,及(3)物体。此外,手部及控制器融合检测算法还可获得除按钮和触控板信息外的控制器的IMU信息。手部及控制器融合检测算法可使用IMU信息:(1)精化检测手部是否正在握持控制器(例如,如果IMU数据是静态的,那么手部没有握持控制器),(2)精化检测哪一只手正在握持哪一控制器(例如,通过比较利用计算机视觉算法计算出的手部3D活动结果与通过IMU数据计算出的活动数据,所述结果与所述数据应彼此一致),和/或(3)当手部和控制器在摄像机的视野之外移动时,使用IMU数据继续跟踪控制器和用户的手部的3D旋转和3D定位。
图9是说明符合本公开的示例性实施例用于手部跟踪的示例性方法900的流程图。方法900可由本文中所描述的***实施。方法900包含多个步骤,所述步骤中的一些可以是可选的。方法900可称为虚拟融合算法。方法900可适用于图1B的手部配置113。在一些实施例中,用户可握持控制器(具有按钮和/或例如触控板的触摸传感器,具有例如IMU的活动传感器,且具有标志器)。按钮、触摸传感器和IMU可类似于以上描述。标志器可以是无源的、由反射材料制成或可以是有源的(例如,使用光发射器)。标志器可以是可见的或不可见的。在一些实施例中,控制器可进一步包括光发射器或光反射器作为标志器。光发射器配置成将红外光作为主动反馈发射到所述头戴式显示器。光反射器可配置成将由构成所述手部跟踪摄像机模块的光发射器发射的红外光作为主动反馈反射到所述头戴式显示器。通过标志器,可获得“握持控制器的手部”状态的更鲁棒性的检测和控制器及手部的更精确6DOF姿势。在手部和控制器在摄像机的视野之外时,***也可短暂的跟踪手部和控制器的活动。
如图9中所示出,为了至少基于所述图像在所述虚拟环境中呈现类似于所述实体手部的所述虚拟手部以由所述用户查看,***200/210可包括处理器和存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,使得处理器执行方法900。处理器和非暂时性计算机可读存储介质可构成HMD 103或在手部跟踪摄像机模块102中。方法900(步骤7)从图像获得当前帧中图像及上一帧中的经确定骨架关节和经确定3D物体姿势作为输出以执行手部及标志器检测算法,从而从图像确定对应于所述实体手部的一个或多个区域和对应于所述标志器的一个或多个区域;(步骤8)执行3D手部骨架关节识别算法以确定所述当前帧中的26个自由度的所述实体手部的3D骨架关节,且执行标志器3D定位识别算法以检测所述标志器的3D定位;(步骤9)获得所述经确定3D骨架关节、所述标志器的所述3D定位、所述IMU数据和所述按钮事件或所述触摸事件中的至少一个作为输出输出到手部及控制器融合检测算法;(步骤10)获得所述手部及控制器融合检测算法的输出作为输入输入到3D手部姿势及3D物体姿势和IMU融合算法,以精化所述经确定3D骨架关节,且以确定3D物体姿势;(步骤11)至少基于经精化3D骨架关节呈现所述虚拟手部;(步骤12)将所述经确定3D骨架关节反馈到用于确定下一帧中对应于所述手部和所述标志器的所述区域的所述手部及标志器检测算法;及(步骤13)为所述下一帧递归地执行(步骤7)到(步骤12)。
在一些实施例中,标记器可具有与众不同的形状,例如球形或金字塔形等。如果标志器是有源的且发光,发射时窗可与摄像机传感器的暴露开启时窗同步。手部及标志器检测算法可在图像中检测:对应于左手、右手和标志器的像素。然后,标志器3D定位识别算法可跟踪及计算每一标志器的精确3D定位。手部及控制器融合检测算法可(1)使标志器的3D定位和活动轨迹与手部的3D定位和活动轨迹相关,且(2)通过比较通过图像确定的活动与通过IMU数据确定的活动而使标志器与控制器相关。手部及控制器融合检测算法可使用来自按钮、触控板和IMU活动数据的信息,以确定哪一控制器与哪一只手相关。3D手部姿势及3D物体姿势和IMU融合算法可(1)通过使标志器跟踪提供的3D定位与IMU数据提供的3D旋转来确定6DOF物体姿势(3D定位+3D旋转),及(2)使6DOF控制器姿势与6DOF手部姿势融合以获取控制器和手部两者的更精确6DOF姿势。
所属领域的技术人员可进一步理解,参考本文所公开内容描述的各种示例性逻辑块、模块、电路和算法步骤可实施为专业电子硬件、计算机软件,或电子硬件和计算机软件的组合。举例来说,模块/单元可通过一个或多个处理器实施,使得一个或多个处理器成为一个或多个特殊目的处理器,从而执行存储于计算机可读存储介质中的软件指令来执行模块/单元的专业功能。
附图中的流程图和框图示出根据本发明的多个实施例的***和方法的可能实施方案的***架构、功能和操作。就此而言,流程图或框图中的每一框可代表一个模块、一个程序段或一部分代码,其中模块、程序段或部分代码包含用于实施指定逻辑功能的一个或多个可执行指令。在一些替代性实施方案中,框中标志的功能也可以与不同于图式中所标志的序列的序列发生。举例来说,两个连续框实际上可基本上平行地执行,且有时,其也可以相反次序执行,此取决于涉及的功能。框图和/或流程图中的每一框及框图和/或流程图中的框的组合可由用于执行相应功能或操作的基于专用硬件的***实施,或可由专用硬件和计算机指令的组合实施。
如所述领域的技术人员将理解,本公开的实施例可体现为方法、***或计算机程序产品。因此,本公开的实施例可采用完全硬件实施例、完全软件实施例或组合软件和硬件的实施例的形式,以允许专业组件执行以上所描述的功能。此外,本公开的实施例可采用计算机程序产品的形式,所述计算机程序产品体现在含有计算机可读程序代码的一个或多个有形和/或非暂时性计算机可读存储介质中。非暂时性计算机可读介质的常见形式包含例如软盘、柔性盘、硬盘、固态硬盘、磁带或任何其它磁性数据存储介质、CD-ROM、任何其它光数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM或任何其它闪速存储器、NVRAM、缓存、寄存器或其它存储器芯片或盒,以及其网络版本。
参考根据本公开的实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本公开的实施例。应理解,每一流程和/或流程图的框和/或框图,以及流程图和/或框图中的框可通过计算机程序指令实施。这些计算机程序指令可提供到计算机的处理器、嵌入式处理器或其它可编程数据处理装置以产生特殊目的机器,使得通过计算机或其它可编程数据处理装置的处理器执行的指令产生用于实施流程图中的一个或多个流程中所指定的功能和/或框图中的一个或多个框的方式。
这些计算机程序指令也可存储在计算机可读存储器中,所述计算机可读存储器可以特定方式引导计算机或其它可编程数据处理装置起作用,使得存储于计算机可读存储器中的指令产生包括指令工具的制造产品,所述指令工具实施流程图中的一个或多个流程和/或框图中的一个或多个框中所指定的功能。
这些计算机程序指令也可载入到计算机或其它可编程数据处理装置上以使得计算机或其它可编程装置上将执行的一系列操作步骤产生由计算机实施的处理,使得指令(其在计算机或其它可编程装置上执行)提供用于实施流程图中的一个或多个流程和/或框图中的一个或多个框中所指定的功能。在典型配置中,计算机装置包含中央处理单元(CPU)、输入/输出接口、网络接口和存储器。存储器可包含易挥发性存储器、随机存取存储器(RAM)和/或非挥发性存储器等,例如计算机可读存储介质中的只读存储器(ROM)或闪存RAM。所述存储器是计算机可读存储介质的实例。
计算机可读存储介质是指其上可存储可由处理器读取的信息的任何类型的物体存储器。因此,计算机可读存储介质可存储由一个或多个处理器执行的指令,包含使得一个或多个处理器执行符合本文中所描述的实施例的步骤或级的指令。计算机可读介质包含非挥发性和挥发性介质及可移动和不可移动介质,其中信息存储可通过任何方法或技术实施。信息可以是计算机可读指令、数据结构和程序的模块,或其它数据。非暂时性计算机可读介质的实例包含但不限于,相变随机存取存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器或其它存储器技术、压缩光盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其它光学存储器、盒式磁带、磁带或磁盘存储器或其它磁性存储器装置、缓存、寄存器,或可用于存储能够由计算机装置存取的信息的任何其它非传输介质。计算机可读存储介质是非暂时性的,且不包含暂时性介质,例如调制数据信号和载波。
说明书已经描述用于3D轮廓识别及3D网格生成的方法、设备和***。所说明的步骤意图解释所示出的示例性实施例,且应预期不断的技术发展将改变执行特定功能的方式。因此,这些实例出于说明而非限制的目的存在于本文中。举例来说,本文中所公开的符合所公开实施例的步骤或过程不限于以所描述的次序执行,但可以任何次序执行,且一些步骤可省略。另外,为描述的便利性,功能建构框的边界在本文中已随意界定。只要指定功能及其关系恰当地执行,可界定可替代性边界。基于本文中所含有的教示的替代方案(包含本文中所描述那些的等同物、扩展、变体、变形等)将对于相关领域的人员是显而易见的。这些替代方案属于所公开实施例的范围和精神。
尽管本文中描述所述公开原理的实例和特征,在不脱离所述公开实施例的精神和范围的情况下,修改、改编及其它实施是可能的。又,词语“包括(comprising)”、“具有(having)”、“含有(containing)”和“包含(including)”及其它类似形式在含义上原本是相当的且开放性的,这些词语中的任何一个后面的一项或多项并不是对所述项或所述多项的无穷列举或仅限于所列的项或多项。必须指出,除非上下文另有明确说明,本文和所附权利要求书中所使用的单数形式“一(a)”、“一(an)”和“所述(the)”包含复数引用。
应了解,本发明并不限于以上已描述及附图中已说明的具体结构,在不脱离本本发明的范围的情况下,可进行各种修改和更改。期望本发明的范围仅由所附权利要求书限制。