技术领域
[0001] 本发明大体上涉及一种用于跟踪用户的运动的方法,尤其涉及一种用户的人机交互系统和人机交互方法。
相关背景技术
[0002] 为了在电子设备(诸如游戏机、计算机、智能手机、智能电器等)上提供直观的操作,可检测用户的运动,以根据用户的运动直接操作电子设备。
[0003] 在传统方法中,一些电子设备可允许用户的多个人体部位(诸如手、腿、头等)来控制这些电子设备的操作,且可跟踪这些人体部位的运动。然而,这些电子设备仅提供一种同时检测多个人体部位的运动的方式。举例来说,虚拟现实(virtual reality;VR)产品提供手持型控制器,且每一手持型控制器包含惯性测量单元(inertial measurement unit;IMU)以跟踪用户的手的运动。有时,由于习惯或需要,一种运动跟踪方式对于一些用户来说可能是限制。
具体实施方式
[0027] 现将详细参考本发明的优选实施例,其实例在附图中示出。只要可能,相同附图符号在附图和描述中用以指代相同或相似元件。
[0028] 图1为示出根据本发明的示例性实施例中的一个的人机交互系统100的框图。参看图1,人机交互系统100包含(但不限于)一个或多个第一传感器110、一个或多个第二传感器120、存储器130以及处理器150。在一个实施例中,人机交互系统100可适用于VR、AR、MR、XR或其它现实相关技术。在一些实施例中,人机交互系统100可适用于操作外部设备(诸如计算机、游戏机、智能手机、内置式系统、智能电器等)。
[0029] 在一个实施例中,第一传感器110可以是照相,诸如单色照相或彩色照相、深色照相、录像机或其它能够捕获图像的图像传感器。
[0030] 在一些实施例中,第一传感器110可用于捕获朝向用户的一个或多个操作部位,以生成包含用户的操作部位的图像数据。举例来说,一个或多个操作部位可包含用户的脸、手、头、脚踝、腿、腰或其它人体部位。
[0031] 在一个实施例中,人机交互系统100还包含头戴式显示器(head-mounted display;HMD),且第一传感器110嵌入于HMD中。在一些实施例中,第一传感器110可放置在第一传感器110可捕获目标操作部位的任何位置处。
[0032] 在另一实施例中,第一传感器110可以是加速计、陀螺仪、磁力计、激光传感器、惯性测量单元(IMU)、红外线(infrared ray;IR)传感器或前述运动传感器的任何组合。第一传感器110用于感测自身运动,且与自身所处的操作部位一起作用。举例来说,第一传感器110检测三维空间中的位置和自身旋转情况。
[0033] 在一些实施例中,人机交互系统100还包含一个或多个控制器(例如,手持型控制器、可穿戴设备(诸如可穿戴控制器、智能手表、脚踝传感器、HMD或类似物)),且第一传感器110嵌入于控制器中。用户的操作部位可握持、佩戴或携带控制器。第一传感器110可随着用户的操作部位移动或旋转。因此,第一传感器110的运动可表示操作部位的运动。
[0034] 在再一实施例中,第一传感器110可包含前述的图像传感器和运动传感器。
[0035] 类似地,第二传感器120可以是任何类型的前述图像传感器或任何类型的前述运动传感器。在一些实施例中,第二传感器120可包含图像传感器和运动传感器。应注意,第二传感器120与第一传感器110之间的差别为第二传感器120用于感测不同于由第一传感器110所感测的操作部位的用户的另一操作部位的运动。
[0036] 存储器130可以是任何类型的固定或可移动随机存取存储器(Random-Access Memory;RAM)、只读存储器(Read-Only Memory;ROM)、闪存存储器或类似装置或以上装置的组合。存储器130可用于存储程序码、装置配置、缓冲数据或永久性数据(诸如运动感测数据、图像数据、操作命令等),且随后会介绍这些数据。
[0037] 处理器150耦接到存储器130,且处理器150被配置成加载存储在所述存储器130中的程序码,从而执行本发明的示例性实施例的程序。在一些实施例中,处理器150的功能可通过使用可程式化单元诸如中央处理单元(central processing unit;CPU)、微处理器、微控制器、数字信号处理(digital signal processing;DSP)芯片、现场可编程门阵列(field programmable gate array;FPGA)等来实施。在一个实施例中,处理器150的功能也可通过独立电子装置或集成电路(integrated circuit;IC)来实施,且处理器150的操作也可由软件来实施。
[0038] 应注意,处理器150可或可不与第一传感器110或第二传感器120安置在相同的设备上。然而,分别装配有第一传感器110、第二传感器120以及处理器150的设备可还包含具有兼容通信技术的通信收发器,诸如蓝芽、Wi-Fi、IR或物理传输线路,以彼此传输/接收数据。
[0039] 为了更好理解在本发明的一个或多个实施例中提供的操作工艺,在下文将举例说明若干实施例以详细解释人机交互系统100的操作工艺。在以下实施例中施加人机交互系统100中的装置和模块以解释本文所提供的控制方法。控制方法的每一步骤可根据实际实施情况调整,且不应限于本文描述的内容。
[0040] 图2为示出根据本发明的示例性实施例中的一个的人机交互方法的流程图。参看图2,处理器150可获得来自第一传感器110的第一运动感测数据(步骤S210)。确切地说,第一运动感测数据与用户的第一操作部位相关,且基于第一传感器110生成。处理器150可预定义用户的一个或多个人体部位,或根据用户的选择选择一个或多个人体部位,以确定为第一操作部位的类型。举例来说,右手将是默认的第一操作部位。对于另一实例,人机交互系统100提供显示器以呈现UI,UI显示若干人体部位,且UI上的用户的选择可确定为第一操作部位。
[0041] 在一个实施例中,在接收从第一传感器110中获得的图像(可包含在不同时间点所捕获的捕获的图像序列)和/或数据(可包含在不同时间点获得的感测数据序列)之后,处理器150可检测在图像或数据中是否检测到第一操作部位。在一些实施例中,图像中的第一操作部位将通过机器学习技术(诸如深度学习、人工神经网络(artificial neural network;ANN)或支持向量机(support vector machine;SVM)等)来识别。在另一实施例中,第一操作部位可通过其它对象识别技术,诸如二进制分类器、自适应促进(adaptive boosting;
Adaboost)等来识别。在再一实施例中,可确定在不同时间点从运动传感器获得的数据的变化。如果两个时间点之间的变化的值大于预定义阈值,那么处理器150可确定第一操作部位正在移动。另一方面,处理器150可确定第一操作部位没有移动或第一传感器110已从第一操作部位中离开。
[0042] 在一个实施例中,响应于在图像中检测到第一操作部位,处理器150可根据图像中的第一操作部位的运动生成第一运动感测数据。在一些实施例中,对应于图像中的第一操作部位的感测强度和像素位置可用于估计第一操作部位的深度信息(即,相对于第一传感器110或其它参考设备的距离)且估计第一操作部位在平行于第一传感器110的平面上的2D位置。处理器150可根据第一操作部位的距离和2D位置在预定义坐标系统中生成3D位置。处理器150可根据在不同时间点处的多个位置进一步估计第一操作部位的位移和旋转数据,以生成6自由度(6-degree of freedom;6-DOF)数据(所述数据将视为第一运动感测数据)。在一些实施例中,2D/3D空间中的第一操作部位的3-DoF数据、相对位置和/或位移可为第一运动感测数据。
[0043] 在另一实施例中,基于从其中第一传感器110为运动传感器的第一传感器110中获得的数据,第一运动感测数据可为3-DoF数据、6-DOF数据、第一操作部位在2D/3D空间中的相对位置和/或位移。
[0044] 在再一实施例中,第一传感器110包含图像传感器和运动传感器,且第一运动感测数据可基于来自图像传感器中的图像的图像和来自运动传感器的数据生成。举例来说,图像可用于估计第一操作部位的位置,且数据可用于估计第一操作部位的旋转情况。对于另一实例,图像和数据都可用于确定第一操作部位的位置。
[0045] 另一方面,处理器150可获得第二运动感测数据(步骤S230)。确切地说,第二运动感测数据与不同于第一操作部位的用户的第二操作部位相关。举例来说,第一操作部位为右手,且第二操作部位为左手。在一个实施例中,来自第二传感器120的第二运动感测数据的生成可指来自第一传感器110的第一运动感测数据的生成。这意味着可基于从第二传感器120中获得的图像和/或数据来生成第二运动感测数据。举例来说,第二传感器120为IMU且嵌入于左手手持型控制器中,且IMU可获得加速度、旋转(可包含定向和角速度)以及磁场。IMU的感测结果可用于估计左手的姿势和旋转数据,以确定为第二运动感测数据。
[0046] 图3A为示出根据本发明的示例性实施例中的一个的人机交互系统200的示意图。参看图3A,人机交互系统200包含右手的HMD 140和手持型控制器160。立体照相115(即第一传感器110和/或第二传感器120)和处理器150嵌入于HMD 140中,且立体照相115可被配置成朝向操作部位B1(即用户的左手)和操作部位B2(即用户的右手)捕获照相图像,以确定操作部位B1的运动感测数据和/或操作部位B2的运动感测数据。另外,IMU 121(即第二传感器
120)嵌入于手持型控制器160中,以获得操作部位B2的运动感测数据。
[0047] 图3B为示出根据本发明的示例性实施例中的一个的另一人机交互系统300的示意图。参看图3B,人机交互系统300包含HMD 140和用于两个脚踝的两个脚踝传感器180。立体照相115可被配置成朝向操作部位B3和操作部位B4(即用户的左手和右手)捕获照相图像,以分别确定操作部位B3和操作部位B4的运动感测数据。IMU 123(即第一传感器110和/或第二传感器120)嵌入于脚踝传感器180中,以分别获得操作部位B5和操作部位B6(即用户的右脚踝和左脚踝)的运动感测数据。
[0048] 应注意,可基于实际要求改变通过第一传感器110或第二传感器120跟踪的操作部位。
[0049] 在一个实施例中,人机交互系统100可提供分别嵌入有第一传感器110和/或第二传感器120的多于一个控制器。处理器150可确定用户使用哪个控制器,以确定将跟踪用户的哪个操作部位。处理器150可根据第一传感器110和/或第二传感器120的感测结果来确定来自图像传感器的图像和/或来自运动传感器的数据是否可靠。
[0050] 在一个实施例中,处理器150可确定与用户的第一操作部位/第二操作部位的运动相关的图像分析结果是否可靠。基于从第一传感器110/第二传感器120的图像传感器中所捕获的图像来确定图像分析结果。在一个实施例中,如果第一操作部位/第二操作部位存在于从第一传感器110/第二传感器120所捕获的图像中,那么处理器150可确定图像传感器的图像分析结果为可靠的,以将从图像传感器中所捕获的图像用作第一运动感测数据/第二运动感测数据。另一方面,在一个实施例中,如果第一操作部位/第二操作部位不存在于从图像传感器中所捕获的图像中,那么处理器150可确定图像传感器的图像分析结果为不可靠的,以将从第一传感器110/第二传感器120的运动传感器中获得的数据用作第一运动感测数据/第二运动感测数据。
[0051] 在另一实施例中,处理器150可确定与用户的第一操作部位/第二操作部位的运动相关的数据分析结果是否可靠。基于从第一传感器110/第二传感器120的运动传感器中获得的数据来确定数据分析结果。在一个实施例中,如果运动传感器(即感测结果)的位置和定向是不相同的或其变化在一段时期内大于阈值,那么处理器150可确定运动传感器的数据分析结果为可靠的,以将从运动传感器中获得的数据用作第一运动感测数据/第二运动感测数据,或以使用来自运动传感器的数据和来自图像传感器的图像来确定第一运动感测数据/第二运动感测数据。另一方面,在一个实施例中,如果运动传感器的位置和定向是相同的或其变化在一段时期内小于阈值,那么处理器150可确定运动传感器的数据分析结果为不可靠的,以将从第一传感器110/第二传感器120的图像传感器中所捕获的图像用作第一运动感测数据/第二运动感测数据。
[0052] 在一些实施例中,处理器150可确定与用户的第一操作部位的运动相关的图像分析结果为可靠的,且确定与用户的第二操作部位的运动相关的数据分析结果是否可靠。在一些实施例中,处理器150可确定与用户的第一操作部位的运动相关的数据分析结果为可靠的,且确定与用户的第二操作部位的运动相关的图像分析结果是否可靠。
[0053] 在一个实施例中,处理器150可确定是否在嵌入有第一传感器110/第二传感器120的控制器上检测操作。控制器可包含诸如按钮、开关、触控面板等的输入设备。控制器可向处理器150报告由输入设备接收的用户操作的输入事件。输入事件可为例如按压按钮,推按开关或用户手指触摸触控面板上的特定位置。如果处理器150在第二时间段内没有接收输入事件,且第二时间段超过第二闲置时间阈值,那么处理器150可确定没有检测到用户的操作,以确定运动传感器的数据分析结果为不可靠的。另一方面,如果第二时间段小于第二闲置时间阈值,那么处理器150可确定检测到用户的操作,以确定运动传感器的数据分析结果为可靠的。
[0054] 在一个实施例中,响应于运动传感器的数据分析结果为可靠的,处理器150可确定与运动传感器一起作用的用户的操作部位为跟踪目标。另一方面,响应于运动传感器的数据分析结果为不可靠的,处理器150可确定嵌入有第一传感器110/第二传感器120的运动传感器的控制器目前没有用户使用,且处理器150可基于从第一传感器110/第二传感器120的图像传感器中获得的图像来获得第一运动感测数据/第二运动感测数据。
[0055] 应注意,在一些实施例中,即使第一传感器110/第二传感器120的运动为不活动的或在嵌入有第一传感器110/第二传感器120的控制器上有一段时间没有检测到操作(诸如时间超过第一闲置时间阈值或第二闲置时间阈值),处理器150仍可基于第一传感器110/第二传感器120的运动获得第一运动感测数据/第二运动感测数据。
[0056] 返回到图2,处理器150可根据第一运动感测数据和第二运动感测数据触发事件(步骤S250)。在一个实施例中,事件与用于控制虚拟环境中的虚拟对象或真实环境中的真实对象相关的一个或多个命令。命令可以是用户头像的对应身体部位的移动命令、与虚拟环境中的一个或多个虚拟对象(avatar)的交互行为(诸如接触、投掷、击打行为等),或真实环境中的外部设备(诸如计算机、游戏机、智能手机、内置式系统、智能电器等)的操作功能(诸如关机、翻页、导航等)。
[0057] 以图3A作为实例,用户头像的左手和右手可分别基于立体照相115的图像数据和IMU 121的运动,根据操作部位B1和操作部位B2的运动感测数据移动或旋转。以图3B作为一实例,用户头像的左手和右手可分别基于立体照相115的图像数据,根据操作部位B3和操作部位B4的运动感测数据移动或旋转。另外,用户头像的左脚踝和右脚踝可分别基于IMU 123的运动,根据操作部位B5和操作部位B6的运动感测数据移动或旋转。因此,可同时实施两种运动跟踪方式(图像感测和运动感测)。
[0058] 应注意,多于一个命令可用于触发事件。举例来说,左手的波浪运动可分别对应于五个命令,以在VR模式中按顺序从虚拟环境中去除五个虚拟对象,可对应于在AR模式中同时控制两个真实对象的两个命令(例如,打开真实电视和关闭真实计算机),或可对应于一连串命令(例如,打开真实记录器、等待十秒以及关闭真实记录器)。
[0059] 在另一实施例中,事件与用于控制处理器150执行的应用或操作系统的设置、中断和/或操作相关的一个或多个命令。举例来说,事件可为场景的变化、操作模式的变化、存在于游戏中、终止游戏、关闭人机交互系统100等。然而,事件将基于实际需求而适用于其它应用,且本发明并不限于此。
[0060] 综上所述,在本发明实施例的人机交互系统和人机交互方法中,可基于图像传感器的图像和/或运动传感器的数据分别跟踪不同身体部位的动作。在同一时间,可基于两种运动跟踪手段的运动感测数据来触发事件。藉此,用户可基于他/她的需求或习惯选择内嵌有传感器的控制器,以透过对应于一个或更多个身体部位的控制器来操作。在同一时间,用户亦可在没有控制器的情况下使用其他身体部位来产生指令。
[0061] 本领域的技术人员将显而易见,可在不脱离本发明的范围或精神的情况下对本发明的结构作出各种修改和变化。鉴于以上内容,希望本发明涵盖本发明的修改和变化,只要所述修改和变化落入所附权利要求和其等效物的范围内。