具体实施方式
下面将参照附图来描述根据本发明实施例的用于在用户与机器之间进行交互的交互方法和交互设备。应当理解:这里描述的实施例仅仅是说明性的,而不应被解释为限制本发明的范围。
下面,首先参照图1来描述根据本发明实施例的用于在用户与机器之间进行交互的交互方法。该交互方法可以由下文所述的交互设备执行。所述机器可以是计算机或者任何其它能够接受信息输入并且执行相应操作的设备。为便于描述,在下文中,使用计算机作为所述机器的示例。
如图1所示,在步骤S101中,获取表示用户身体部位上的多个采样点的参量的参量信息。
在本发明的实施例中,用户可以通过做动作来表达自己希望执行的操作,从而与计算机进行交互。例如,当用户握拳时,可以在计算机中执行“缩小所显示的图片”的操作;反之,当用户展开手掌时,可以在计算机中执行“放大所显示的图片”的操作。当用户做动作时,用户相应身体部位的姿势也发生变化,即,用户通过改变身体部位的姿势来做动作。姿势的变化可以通过该身体部位上各点的相对位置(或它们之间的距离)来体现。例如,当用户握拳时,手掌上各点的相对位置发生变化,使得指尖之间的距离以及指尖和手心的距离逐渐减小;当用户展开手掌时,指尖之间的距离以及指尖和手心的距离增大。因此,可以使用所述动作涉及的身体部位上的各个点的相对位置作为描述所述动作的参量,通过确定在预定时长内所述相对位置的变化,来识别用户的动作。
用户也可以通过改变身体部位的特征量来表达自己希望执行的操作,从而与计算机进行交互。特征量是指与该身体部位有关的物理量,例如身体部位的温度、压力等。例如,用户可以在某个部位的多个点上施加压力,通过改变存在压力的点(压力点)的数量,来表示其希望执行的操作。例如,可以通过增加压力点的数量来表示打开文件的期望操作,并且通过减少压力点的数量来指示关闭文件的期望操作。在这种情况下,可以使用所述身体部位的特征量作为参量,根据在预定的时长内所述特征量的变化,来确定用户希望进行的交互操作。
为此,在用户的身体部位上选择多个点作为用于对各种参量进行采样的采样点。设所选择的采样点的数量为N(N≥1),该采样点的数量被称为采样规模。将这些采样点编号为采样点1、采样点2、...采样点N。用户可以根据需要来设定在哪个身体部位上选择采样点。例如,当用户希望通过手的动作来与计算机交互时,可以在手指和手心处选择采样点。当用户希望通过四肢的动作来与计算机进行交互时,可以在躯干和四肢上选择采样点。
然后,在每个采样点上安装传感器,所述传感器用于对每个采样点的、描述用户的动作和/或身体部位的特征量的参量进行采样,从而获取表示所述参量的参量信息。下表1示出了在本发明的实施例中采样的参量。为了了解当用户做动作或改变特征量时各个参量的变化情况,每个采样点处的传感器在预定的采样时长L1内,以预定的间隔ΔL1对各个参量进行采样,从而获得各个参量的L1/ΔL1组采样值(采样数据)的序列(参量信息)。
表1
应当注意,表1所示的参量仅为示例,除了这些参量以外,也可以对其它参量进行采样。例如,可以通过声音采集器(麦克风)采集各个采样点的声音音量W(分贝),或者可以通过光敏传感器采集入射到各个采样点的光通量L(流明)。此外,在每个采样点处,可以仅对表1所示的各个参量中的一个或多个进行采样。而且,表1所示的各个参量的单位也不是限制性的,也可以使用其它单位。
下面,将详细描述使用传感器对所述参量进行采样的方法。
(1)采样点的位置
在本发明的实施例中,采样点的位置是该采样点相对于参考采样点的相对位置,因此,使用以参考采样点为原点建立的三维坐标系来表示各个采样点的位置。具体地,在所述N个采样点中选择一个采样点作为参考采样点,并且以该参考采样点为原点,建立三维坐标系,该参考采样点的位置为(0,0,0)。然后,在每个采样时刻j(1≤j≤L1/ΔL1),确定各采样点i(1≤i≤N)相对于参考采样点的位置(Xij,Yij,Zij),作为各采样点的位置。可以选择任一采样点作为参考采样点,然而,优选地,在所述N个采样点中选择相对静止(例如,相对于计算机的活动幅度相对较小)的采样点作为参考采样点。例如,在所述N个采样点位于手掌上时,可以选择手心处的采样点作为参考采样点,相对于该采样点来确定手指上的采样点的位置;当所述N个采样点位于用户的整个身体上时,选择躯干处的采样点为参考采样点,相对于该采样点来确定四肢上的采样点的位置。可以通过确定各采样点的空间位置(绝对位置),然后将该绝对位置转换为三维坐标系中的、各采样点相对于参考采样点的相对位置,来确定各采样点的位置。可以使用本领域公知的方法来确定各采样点的绝对位置。例如,可以使用带有全球定位系统(GPS)的传感器来测量各个采样点的绝对位置。或者,可以使用基于地磁的磁传感器(例如Honeywell公司的HMC1053磁阻传感器)来测量各个采样点的绝对位置。
采样完成后,所述N个采样点的位置采样数据可以表示为以时间为序的采样数组(Xij,Yij,Zij),其中,i为采样点的索引,1≤i≤N,j为采样时刻的索引,1≤j≤L1/ΔL1。
(2)采样点的温度
可以使用公知的温度传感器来对采样点的温度进行采样。采样完成后,所述N个采样点的温度采样数据可以表示为Tij,其中,1≤i≤N,1≤j≤L1/ΔL1。
(3)采样点的压力
可以使用公知的压力传感器来对采样点的压力进行采样。采样完成后,所述N个采样点的压力采样数据可以表示为Fij,其中,1≤i≤N,1≤j≤L1/ΔL1。
经过采样时长L1的采样之后,所述N个采样点的所有参量的采样数据(参量信息)可以被表示为以时间为序的采样数据数组序列(Xij,Yij,Zij,Tij,Fij)。
在本发明中,引入了采样空间的概念。采样空间是在所有采样点处按照时间顺序进行采样获得的所有采样数据数组构成的空间。在实施例中,采样空间由采样数据数组序列(Xij,Yij,Zij,Tij,Fij)构成。采样空间的维度为采样数据数组的长度,在本实施例中,采样空间的维度为5。由于作为采样空间的元素的采样数据数组是对用户的动作/特征量的直接采样结果,因此,采样空间是对用户的动作或特征量的直接感知,而且,由于采样数据数组的长度取决于所采样的参量的种类,因此,采样空间的维度代表对用户信息进行采集的详细程度。采样数据数组也可以被称为采样向量,其分量的数量等于采样数据数组长度,并且其分量均为具有特定物理含义的物理量(在本实施例中,采样向量的分量为坐标X、Y和Z、温度T以及压力F)。
应当注意,尽管如上文所述在每个采样点分别使用不同的传感器来测量不同的参量,但这不是限制性的,也可以将这些传感器集成为单个传感器,并且在每个采样点使用单个传感器来采样多种参量。
返回图1,在步骤S102中,将在步骤S101获得的参量信息转换为表示用户身体部位的状态的状态信息。
如上文所述,所述参量信息是采样点的位置和特征量在每个采样时刻的采样值。为了获知用户的动作和特征量的变化,需要将该参量信息转换为更直接地反映所述动作和特征量的信息,即表示用户身体部位的状态的状态信息。具体地,当用户做动作时,可以使用与该动作有关的信息(例如速度等)来表示做出该动作的身体部位的状态。例如,当用户挥手时,可以使用手的移动速度和移动方向来表示手部的状态;当用户改变身体部位上的压力点的数量时,可以使用压力点集合来表示该身体部位的状态。由于身体部位的状态反映了用户的意图,因此,所述状态信息可以被认为是描述该用户的自然表达的信息。在本发明的实施例中,使用用户身体部位的移动速度S1、旋转速度S2和开合速度S3、身体部位的触合点集合S4、采样点的平均温度S5和身体部位的压力点集合S6作为所述状态信息,如下表2所示。相应地,可以将所述状态信息表示为数据数组(S1,S2,S3,S4,S5,S6)。表2所述的状态信息只是示例,可以使用表2所示的各项中的一项或多项、或者除了S1-S6以外的其它物理量作为所述状态信息。
表2
与采样空间对应,在本发明中引入了语义空间的概念。语义空间是由所有表示用户的自然表达的状态信息(数据数组)构成的空间。语义空间的维度为所述数据数组的长度。由于所述数据数组描述用户的自然表达,因此,语义空间的维度代表描述用户的自然表达的详细程度。所述数据数组也可以被称为语义向量,其分量的数量与数据数组的长度相同,并且均为描述用户的自然表达的物理量。在本发明的实施例中,语义空间的维度为6,语义向量为(S1,S2,S3,S4,S5,S6),语义向量的分量为移动速度S1、旋转速度S2、开合速度S3、触合点集合S4、平均温度S5以及压力点集合S6。
因此,在步骤S102执行的转换实际上是采样空间向语义空间的转换,其将在步骤S101获得的采样空间中的采样向量序列(Xij,Yij,Zij,Tij,Fij)转换为语义空间中的语义向量序列(S1j,S2j,S3j,S4j,S5j,S6j)(以下称为用户语义向量序列),其中,1≤i≤N,1≤j≤L1/ΔL1。该转换是针对每一采样时刻执行的,即,对于每个采样时刻j,将所述N个采样点的采样向量转换为一个语义向量(以下称为用户语义向量)。
下面,将详细描述转换采样向量(Xij,Yij,Zij,Tij,Fij)以获得语义向量的各分量S1j-S6j的方法。
(一)移动速度S1
利用用户身体部位上的所有采样点的中心点的移动速度来表示身体部位的移动速度S1。
具体地,在采样时刻j,各个采样点的x坐标为X1j、X2j、...、Xij、...、XNj,y坐标为Y1j、Y2j、...、Yij、...、YNj,z坐标为Z1j、Z2j、...、Zij、...、ZNj。通过下式(1)-(3)计算所述身体部位在x、y和z方向上的移动速度S1x(j)、S1y(j)和S1z(j):
其中,
表示坐标X
ij的一阶导数,
表示坐标Y
ij的一阶导数,
表示坐标Z
ij的一阶导数。如本领域技术人员所知,可以通过不同采样时刻的坐标使用差分的方法来获得所述一阶导数。
由此,与采样时刻j对应的身体部位的移动速度S1j为:
S1j=(S1xj,S1yj,S1zj)。
(二)旋转速度S2
利用所述中心点的旋转速度来表示身体部位的旋转速度S2。
具体地,在采样时刻j,各个采样点的x坐标为X1j、X2j、...、Xij、...、XNj,y坐标为Y1j、Y2j、...、Yij、...、YNj,z坐标为Z1j、Z2j、...、Zij、...、ZNj,则所述中心点(C)的坐标为
通过下式(7)-(9)来计算所述身体部位绕x、y和z轴旋转的旋转速度S2xj、S2yj和S2zj:
与采样时刻j对应的身体部位的旋转速度S2j为:
S2j=(S2xj,S2yj,S2zj)。
(三)开合速度S3
利用用户身体部位上的所有采样点向所述中心点收缩/从所述中心点扩张的速度来表示身体部位的开合速度S3。
具体地,在采样时刻j,各个采样点的x坐标为X1j、X2j、...、Xij、...、XNj,y坐标为Y1j、Y2j、...、Yij、...、YNj,z坐标为Z1j、Z2j、...、Zij、...、ZNj,则如上式(4)-(6)所述获得所述中心点的坐标。
由此,获得与采样时刻j对应的身体部位的开合速度S3j:
其中,当S3j为正时,所述身体部位从中心点扩张,当S3j为负时,所述身体部位向中心点收缩。
(四)触合点集合S4
在任一采样时刻,当两个采样点之间的距离不大于距离阈值dthreshold时,这两个采样点被视为足够接近且发生触合,并且形成一个触合点。所述N个采样点形成的所有触合点构成触合点集合S4。距离阈值dthreshold可以根据需要事先设定,例如,可以将dthreshold设定为1毫米。
具体地,在采样时刻j,各个采样点的x坐标为X1j、X2j、...、Xij、...、XNj,y坐标为Y1j、Y2j、...、Yij、...、YNj,z坐标为Z1j、Z2j、...、Zij、...、ZNj,则任意两个采样点m和n(1≤m,n≤N)之间的距离为:
当djmn≤dthreshold时,确定这两个采样点发生触合并且形成一个触合点。将该触合点表示为:
S4jmn=(m,n,djmn)。 (12)
由此,与采样时刻j对应的、在全部N个采样点中形成的触合点集合为:
(五)平均温度S5
在任一采样时刻,剔除各个采样点的最高温度和最低温度,计算其余采样点的温度的平均值,作为与该采样时刻对应的身体部位的平均温度S5。
具体地,在采样时刻j,各个采样点的温度为T1j、T2j、...、Tij、...、TNj,假设最高温度为采样点imax的温度,最低温度为采样点imin的温度,则与该采样时刻对应的身体部位的平均温度S5j为:
(六)压力点集合S6
如上文所述,用户可以在各个采样点上施加压力。当采样点上的压力不小于压力阈值Fthreshold时,该采样点为压力点。所述N个采样点中的所有压力点构成该身体部位的压力点集合。压力阈值Fthreshold可以根据需要事先设定,例如,可以将Fthreshold设定为0.49牛顿。
具体地,在采样时刻j,各个采样点的压力为F1j、F2j、...、Fij、...、FNj。将采样点i的压力Fij与压力阈值Fthreshold进行比较,当Fij≥Fthreshold时,确定采样点i为一个压力点,并且将该压力点表示为:
S6ij=(i,Fij)。 (15)
由此,与采样时刻j对应的、所述N个采样点中的所有压力点构成的压力点集合为:
通过上述计算,采样向量序列(Xij,Yij,Zij,Tij,Fij)被转换为语义向量序列(S1j,S2j,S3j,S4j,S5j,S6j)。该语义向量序列即为直接反映用户状态(动作和特征量的变化情况)的状态信息。
再次参照图1,在步骤S103,基于在步骤S102获得的状态信息和表示对机器的特定操作的模板,识别用户要对机器进行的操作。
在本发明的实施例中,预先建立模板库(模板空间),然后利用模板来识别用户要对机器进行的操作。模板库中的每个模板对应于计算机能够理解的一个系统事件,该系统事件进而与计算机执行的一个操作相对应。另一方面,每个模板与预定的用户动作和/或特征量的变化相对应,因此,当出现所述动作和/或特征量的变化时,即,当接收到与所述动作和/或特征量的变化对应的语义向量序列时,该语义向量序列将被映射为所述模板对应的系统事件,然后,该系统事件被输入计算机,使得计算机执行与该系统事件对应的操作,从而实现用户与计算机之间的交互。
可以为计算机能够执行的每种操作预先建立一个模板。所述操作例如包括打开文件、关闭文件、删除文件等。在用户通过动作来与计算机交互时,对于同一类型的动作,用户每次做出的具体动作形态不一定相同。而且,对于同一类型但不同形态的动作,用户希望对计算机执行的操作可能相同,也可能不相同。前一种情况的示例为:只要用户握拳,就关闭文件,而不考虑握拳的速度;后一种情况的示例为:当用户快速握拳时,快进播放视频,而当用户缓慢握拳时,慢速播放视频。同样,在用户通过身体部位的特征量来与计算机交互的情况下,所改变的特征量的类型以及相同特征量的不同改变模式可能代表不同的用户意图。为了区分不同类型和/或不同形态的动作、以及不同的特征量和特征量改变模式,以便使其唯一地映射到计算机执行的操作,在模板中包括定义每种用户状态的标准形式的语义向量序列(以下称为标准语义向量序列),使得只有用户做出的动作的形态或特征量的变化模式与标准语义向量序列定义的形态或模式相同或接近时,才使计算机执行相应的操作。根据设计需要,标准语义向量序列中的每个语义向量(以下称为标准语义向量)可以被设定为包括只与动作有关的分量、只与特征量有关的分量、或者与二者都有关的分量。
建立模板的方法与在上文中针对步骤S101和S102描述的获得用户语义向量序列的方法相似,因此在下文中仅简要描述该建立方法。模板的建立可以由交互方法和交互设备的设计者在设计时进行,也可以由用户自己进行。
当建立只包括与动作有关的分量的模板时,首先,由动作的执行者(例如,设计者或用户)做出该动作的标准形态(即,标准动作),在此期间,按照参照步骤S101描述的方式,在执行者身体部位的多个采样点处,在预定的采样时长L2内以间隔ΔL2对该动作的参量进行采样,从而获得标准动作的采样向量序列。然后,按照参照步骤S102描述的转换方式,将所述采样向量序列转换为标准语义向量序列,该标准语义向量序列包括(L2/ΔL2)个标准语义向量。所述标准语义向量序列作为与该动作对应的模板而被存储在模板库中。当建立只包括与特征量有关的分量的模板时,首先,由执行者做出该特征量的标准改变模式,在此期间,按照参照步骤S101描述的方式,在执行者身体部位的多个采样点处,在预定的采样时长L2内以间隔ΔL2对特征量进行采样,从而获得所述特征量的采样向量序列。然后,按照参照步骤S102描述的转换方式,将所述采样向量序列转换为标准语义向量序列,该标准语义向量序列包括(L2/ΔL2)个标准语义向量。所述语义向量序列作为与特征量的改变模式对应的模板而被存储在模板库中。类似地,当建立包括与动作和特征量二者有关的分量的模板时,可以通过对动作的参量和特征量二者进行所述采样和向语义向量序列的转换,来建立模板。
如上文所述,在步骤S102获得的用户语义向量序列包括(L1/ΔL1)个用户语义向量,而模板的标准语义向量序列包括(L2/ΔL2)个标准语义向量。为了对二者进行匹配,优选地,将采样时长L1和L2设置为相同(=L),并且将采样间隔ΔL1和ΔL2设置为相同(=ΔL),使得用户语义向量序列的持续时间与标准语义向量序列相同,并且用户语义向量之间的间隔与标准语义向量之间的间隔也相同。由于采样时长L决定了用户语义向量序列和标准语义向量序列(模板)的持续时间,因此,采样时长L代表模板库的最大识别能力。此外,采样间隔ΔL越小,单位时间内的标准语义向量数量越多,匹配的精度就越高。因此,采样间隔ΔL代表识别精度。应当注意,除了将采样时长L1和L2设置为相同以外,也可以将采样时长L1设置为比L2长,在这种情况下,可以在(L1/ΔL)个语义向量中提取(L2/ΔL)个连续的用户语义向量来与标准语义向量序列进行匹配。
在步骤S103的识别过程中,将在步骤S102获得的用户语义向量序列和模板库中的模板逐一进行匹配,并且当该用户语义向量序列与某个模板匹配时,将与该模板对应的计算机操作识别为用户要对机器进行的操作。具体地,在进行匹配时,计算用户语义向量序列与模板中的标准语义向量序列之间的偏离系数,并且将该偏离系数与预先设定的偏离阈值进行比较;当该偏离系数不大于偏离阈值时,可以认为所述用户语义向量序列与模板匹配,从而,将该模板对应的系统事件输入计算机,使得计算机根据该系统事件执行相应的操作。
下面,将参照图2来更详细地描述图1的步骤S103。
如图2所示,在步骤S1031中,从模板库中选择一个模板,并且在步骤S1032中,检查用户语义向量序列中的用户语义向量是否不包括该模板的标准语义向量序列中的标准语义向量的某个分量。根据上面的描述可知,每个模板中的标准语义向量包括预定种类的分量。显然,只有用户语义向量包括标准语义向量中的全部分量时,用户语义向量序列才可能与模板匹配;反之,当用户语义向量不包括标准语义向量的某个分量时,用户语义向量序列必然与模板不匹配。因此,如果在步骤S1032确定用户语义向量不包括标准语义向量的某个分量,则在步骤S102获得的用户语义向量序列与当前选择的模板不匹配,因此该过程进行到步骤S1033,并且确定模板库中是否还存在其它模板。如果不存在其它模板,则该过程结束,在这种情况下,匹配失败,并且在计算机中不进行任何操作。反之,如果存在其它模板,则该过程返回步骤S1031,并且重复上述步骤。
另一方面,如果在步骤S1032中的检查结果为否,则在步骤S1034中,从用户语义向量序列的每个用户语义向量中选择与模板相同的分量以进行下文所述的匹配,即,在与模板进行匹配时,在用户语义向量的各个分量中,只考虑与模板中的各分量类型相同的分量。在本实施例中,假设标准语义向量包括上文所述的6个分量,即,移动速度、旋转速度、开合速度、触合点集合、平均温度和压力点集合。
接下来,在步骤S1035中,确定用户语义向量序列的各用户语义向量中的触合点集合是否与标准语义向量序列的各标准语义向量中的触合点集合匹配。可以根据预先设定的规则来确定所述触合点集合是否匹配。例如,可以将所述规则设定为:当在每个用户语义向量中的触合点集合的值与对应的标准语义向量中的触合点集合的值相同时,所述触合点集合匹配;或者,当这两个触合点集合的触合点数量相同时,确定所述触合点集合匹配;当然,也可以使用其它适当的规则来确定所述触合点集合是否匹配。
如果在步骤S1035确定所述触合点集合不匹配,则用户语义向量序列与模板不匹配,该过程进行到步骤S1033。反之,如果所述触合点集合匹配,则在步骤S1036,确定用户语义向量序列的各用户语义向量中的压力点集合是否与标准语义向量序列的各标准语义向量中的压力点集合匹配。同样,可以根据预先设定的规则来确定所述压力点集合是否匹配。例如,可以将所述规则设定为:当每个用户语义向量的、形成压力点集合中的压力点的采样点与对应的标准语义向量中的、形成压力点集合中的压力点的采样点相同时,确定所述压力点集合匹配;或者,当这两个压力点集合的压力点数量相同时,确定所述合点集合匹配;同样,也可以使用其它适当的规则来确定所述压力点集合是否匹配。
应当注意,如果实现设定的模板的标准语义向量不包括触合点集合和压力点集合之一或全部,则不需要执行步骤S1035和S1036之一或全部。
如果在步骤S1036确定所述压力点集合不匹配,则用户语义向量序列与模板不匹配,因此,该过程进行到步骤S1033。反之,如果所述压力点集合匹配,则在步骤S1037,计算用户语义向量序列和模板之间的偏离系数δ。该偏离系数δ表示用户语义向量序列偏离所述模板的程度。在本实施例中,基于除了触合点集合和压力点集合以外的分量来计算所述偏离系数。稍后将详细描述计算所述偏离系数的方法。
在步骤S1038,比较所计算的偏离系数与预设的偏离阈值,并且确定该偏离系数是否大于所述偏离阈值。所述偏离阈值可以根据预期的识别精度定来设定:如果希望提高识别精度,可以将偏离系数设置得较小,反之可以将偏离系数设置得较大。作为示例,可以将偏离系数设置为0.15。如果在步骤S1038确定该偏离系数大于所述偏离阈值,则用户语义向量序列与模板之间的差异过大,因此二者不匹配,并且该过程前进到步骤S1033。反之,如果偏离系数不大于所述偏离阈值,则确定用户语义向量序列与该模板匹配。因此,在步骤S1039,将该模板所表示的特定操作识别为用户要对机器进行的操作。在这种情况下,该模板所对应的系统事件被输入计算机,使得计算机根据该系统事件执行所述特定操作。
下面,将详细描述在步骤S1037计算偏离系数δ的过程。
偏离系数的计算是以一维量为基础来进行的。具体地,如果语义向量的分量均为一维,则计算每个分量的偏离系数,进而求出整个语义向量的偏离系数。如果语义向量中包括多个维度的分量,则分别计算每个维度的偏离系数,然后根据每个维度的偏离系数求出整个语义向量的偏离系数δ。
(1)一维偏离系数δM的计算
如上文所述,用户语义向量序列和标准语义向量序列分别包括L/ΔL个语义向量。假设每个语义向量均包括某个分量M,该分量M为一维的。
根据标准语义向量序列中的L/ΔL个的M值,可以将标准语义向量序列中的该分量拟合为函数G=g(t),其中t∈[0,L],t为从标准语义向量序列中的第一个向量起计算的时间。
根据用户语义向量序列中的L/ΔL个的M值,可以将用户语义向量序列中的该分量拟合为函数F=f(t),其中t∈[0,L],t为从用户语义向量序列中的第一个向量起计算的时间。
根据泰勒公式,将f(t)和g(t)展开如下(忽略高阶无穷小项):
定义由分量M引起的、模板与用户语义向量序列之间的偏离方差εM如下:
通过对该偏离方差εM进行去量纲处理,获得由分量M引起的偏离系数δM:
令
和
其中
和
分别是f(t)和g(t)在t=0处的一阶导数,
和
分别是f(t)和g(t)在t=0处的二阶导数,
和
分别是f(t)和g(t)在t=0处的三阶导数,则可以将偏离方差ε
M写为
由此,可以将偏离系数δM写为:
根据式(22)可知,对于给定的模板G=g(t)来说,偏离系数δM的分母是已知的且为常量。可以在预先定义所述模板时,计算并且存储该分母的值,以便在以后的识别过程中使用。对于偏离系数δM的分子,可以在每次匹配时计算,并且代入式(22)。
f(t)和g(t)在t=0处的一阶导数、二阶导数和三阶导数的计算方法是公知的。例如,可以基于所述L/ΔL个M值,使用差分的方法来计算各导数的值,因此在这里不再赘述。
(2)总偏离系数δ的计算
在按照上述方式(式(22))获得一维分量的偏离系数或多维分量的每一维的偏离系数之后,使用下式(23)来计算由全部分量引起的、用户语义向量序列和标准语义向量序列之间的总偏离系数δ:
其中,δ1至δp为所述一维分量的偏离系数以及多维分量的每一维的偏离系数,p为标准语义向量中各分量的维度的总和。
在本发明的实施例中,由于语义向量包括移动速度S1(三维)、旋转速度S2(三维)、开合速度S3(一维)和温度S5(一维),因此,p为8,用户语义向量序列和标准语义向量序列之间的总偏离系数δ为:
其中,δS1x、δS1y和δS1z分别为移动速度S1的三个维度的偏离系数;δS2x、δS2y和δS2z分别为旋转速度S2的三个维度的偏离系数;δS3为开合速度S3的偏离系数;δS5为平均温度S5的偏离系数。
在上文中,描述了根据本发明实施例的交互方法。应当注意,该实施例是说明性的,而不是限制性的。根据本发明的教导,本领域技术人员可以想到很多变型。例如,尽管如上文所述采样向量包括5个分量,但是采样向量也可以包括这5个采样分量中的一个或多个,或者包括与其它运动和/或特征量相关的分量。此外,除了上文所述的6个分量以外,用户语义向量可以包括这6个分量中的一个或多个或者包括其它分量,相应地,使用这些分量的偏离系数,按照式(23)所示计算总偏离系数。然而,为了能够与模板进行成功的匹配,优选地,选择采样向量的分量,使得根据该采样向量导出的用户语义向量至少包括一个模板的标准语义向量中的分量。
下面,参照图3来描述根据本发明实施例的用于在用户与机器之间进行交互的交互设备,该交互设备可以执行上文所述的交互方法。
如图3所示,交互设备200包括获取单元201、转换单元202和识别单元203。
获取单元201获取表示用户身体部位上的多个(假设为N个)采样点的参量的参量信息。如上所述,所述多个采样点是在用户的身体部位上选择的、用于对各种参量进行采样的采样点。
获取单元201包括安装在每个采样点上的传感器,并且通过所述传感器对每个采样点的、描述用户的动作和/或身体部位的特征量的参量进行采样,从而获取所述参量信息。更具体地,每个采样点处的传感器在预定的采样时长L1内,以预定的间隔ΔL1对各个参量进行采样,从而获得各个参量的L1/ΔL1组采样值的序列,作为所述参量信息。在本发明的实施例中,每个采样点处的传感器采样的参量包括采样点的位置(x坐标、y坐标和z坐标)、温度和压力,如上面的表1所示。
当对采样点的位置进行采样时,在所述N个采样点中选择参考采样点,并且以参考采样点为原点建立三维坐标系。在每个采样时刻,所述传感器确定各个采样点的空间位置(绝对位置),然后获取单元201将该绝对位置转换为三维坐标系中的、各采样点相对于参考采样点的相对位置,作为各采样点在该采样时刻的位置。如上文所述,在采样完成后,获取单元201获得的所述N个采样点的位置采样数据可以表示为以时间为序的采样数组(Xij,Yij,Zij),其中,i为采样点的索引,1≤i≤N,j为采样时刻的索引,1≤j≤L1/ΔL1。此外,传感器可以在各个采样时刻,对每个采样点的温度进行采样。采样完成后,获取单元201获得的所述N个采样点的温度采样数据可以表示为Tij,其中,1≤i≤N,1≤j≤L1/ΔL1。传感器还可以在各个采样时刻,对每个采样点的压力进行采样。采样完成后,获取单元201获得的所述N个采样点的压力采样数据可以表示为Fij,其中,1≤i≤N,1≤j≤L1/ΔL1。由此,采样完成后,获取单元201获得的所述N个采样点的所有参量的采样数据(参量信息)可以被表示为以时间为序的采样数据数组序列(采样向量序列)(Xij,Yij,Zij,Tij,Fij),采样向量序列中的所有采样向量构成采样空间。应当注意,在每个采样点处,可以分别使用不同的传感器来采样不同的参量,也可以使用单个传感器来采样所述参量。
转换单元202将获取单元201输出的参量信息转换为表示用户身体部位的状态的状态信息。在本发明的实施例中,使用用户身体部位的移动速度S1、旋转速度S2和开合速度S3、身体部位的触合点集合S4、采样点的平均温度S5和身体部位的压力点集合S6作为所述状态信息,如上面的表2所示,并且,将所述状态信息表示为用户语义向量(S1,S2,S3,S4,S5,S6)。因此,转换单元202将采样空间中的采样向量序列(Xij,Yij,Zij,Tij,Fij)转换为语义空间中的用户语义向量序列(S1j,S2j,S3j,S4j,S5j,S6j),其中,1≤i≤N,1≤j≤L1/ΔL1,该转换是针对每个采样时刻j执行的。转换单元202可以上文所述的方法转换每个采样时刻j的采样向量(Xij,Yij,Zij,Tij,Fij)以获得与该采样时刻对应的语义向量的各分量S1j-S6j,在这里不再赘述。
识别单元203基于由转换单元202输出的状态信息和表示对机器的特定操作的模板,识别用户要对机器进行的操作。所述模板可以按照上文所述的方式预先建立并且作为模板库而存储在交互设备中。具体地,识别单元203将转换单元202输出的用户语义向量序列和模板库中的模板逐一进行匹配,并且当该用户语义向量序列与某个模板匹配时,将与该模板对应的特定操作识别为用户要对计算机进行的操作。
识别单元203包括计算部件2031和确定部件2032。计算部件2031计算用户语义向量序列与模板的标准语义向量序列之间的偏离系数。确定部件2032将所计算的偏离系数与预先设定的偏离阈值进行比较,并且当该偏离系数不大于偏离阈值时,确定所述用户语义向量序列与模板匹配,从而将与该模板对应的计算机操作识别为用户要对计算机进行的操作。随后,识别单元203将该模板对应的系统事件输入计算机,使得计算机根据该系统事件执行相应的操作。
下面,将更详细地描述识别单元203的操作。
确定部件2032从模板库中选择一个模板,并且检查用户语义向量序列中的用户语义向量是否不包括该模板的标准语义向量序列中的标准语义向量的某个分量。如果确定部件2032发现用户语义向量不包括标准语义向量的某个分量,则确定所述用户语义向量序列与当前选择的模板不匹配,因此从模板库中选择下一模板,并且重复上述操作。反之,如果该检查的结果为否定,则确定部件2032从用户语义向量序列的每个用户语义向量中选择与模板相同的分量以进行接下来的匹配。在本实施例中,假设标准语义向量包括上文所述的6个分量,即,移动速度、旋转速度、开合速度、触合点集合、温度和压力点集合。
然后,确定部件2032确定用户语义向量序列的各用户语义向量中的触合点集合是否与标准语义向量序列的各标准语义向量中的触合点集合匹配。确定部件2032可以根据如上文所述的预先设定的规则来确定所述触合点集合是否匹配。如果所述触合点集合不匹配,则确定部件2032确定用户语义向量序列与模板不匹配,并且选择下一模板以便重新执行上述操作。反之,如果所述触合点集合匹配,则确定部件2032接下来确定用户语义向量序列的各用户语义向量中的压力点集合是否与标准语义向量序列的各标准语义向量中的压力点集合匹配。同样,确定部件2032可以根据如上文所述的预先设定的规则来确定所述压力点集合是否匹配。应当注意:如果模板的标准语义向量不包括触合点集合和压力点集合之一或全部,则确定部件2032也不执行相应的确定操作。
如果所述压力点集合不匹配,则确定部件2032确定用户语义向量序列与模板不匹配,并且选择下一模板以便重新执行上述操作。反之,如果所述压力点集合匹配,则确定部件2032通知计算部件2031,使得计算部件2031计算用户语义向量序列和所述模板之间的偏离系数δ。在本实施例中,基于除了触合点集合和压力点集合以外的分量来计算所述偏离系数。计算部件2031可以按照上文所述的方式来计算所述偏离系数δ。具体地,计算部件2031可以按照上式(24)计算用户语义向量序列和标准语义向量序列之间的偏离系数δ,并且将该偏离系数δ输出到确定部件2032。
随后,确定部件2032比较所计算的偏离系数与预设的偏离阈值,并且确定该偏离系数是否大于所述偏离阈值。如果该偏离系数大于所述偏离阈值,则确定部件2032确定用户语义向量序列与模板不匹配。反之,如果偏离系数不大于所述偏离阈值,则确定部件2032确定用户语义向量序列与该模板匹配,从而将该模板所表示的特定操作识别为用户要对计算机进行的操作。随后,该模板所对应的系统事件被输入计算机,使得计算机根据该系统事件执行所述特定操作,从而实现用户和计算机之间的交互。
根据本发明实施例的交互设备的上述转换单元和识别单元可以独立于计算机而存在。在这种情况下,上述转换和识别工作由交互设备自己执行,而不会消耗计算机的处理能力,因而不会给计算机带来额外的负担。
当用户做出动作和/或改变特征量时,根据本发明实施例的交互方法和交互设备可以识别该动作和/或改变特征量,进而将与该动作和/或改变特征量对应的系统事件输入到机器,使得所述机器执行相应的操作,由此,实现用户和机器之间的交互。因此,与传统技术相比,根据本发明实施例的交互方法和交互设备可以基于更丰富、更多维的用户信息来在用户和机器之间进行交互。
尽管已经示出和描述了本发明的交互方法和交互设备的示例实施例,本领域技术人员应当理解,在不背离权利要求及其等价物中限定的本发明的范围和精神的情况下,可以对这些示例实施例做出各种形式和细节上的变化。