具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例根据用户舒服度确定虚拟触摸屏所在位置以及该虚拟触摸屏的屏幕大小,在接收到用户对虚拟触摸屏的操作指令时,根据该操作指令执行相应的操作。
本发明实施例提供了一种:基于虚拟触摸屏的人机交互方法、装置及电子设备。
所述方法包括:获取用户的手臂长度和用户的双肩宽度;
根据所述用户的手臂长度和用户的双肩宽度确定虚拟触摸屏的属性参数,所述虚拟触摸屏的属性参数包括虚拟触摸屏的长度、宽度以及虚拟触摸屏与XOY平面的距离,其中XOY平面也即用户正视情况下用户脸所在的平面;
根据用户手掌相对虚拟触摸屏的移动确定屏幕操作点的移动,再根据用户手掌中心质点与XOY平面的距离变化确定用户的操作指令;
根据所述操作指令执行相应的操作。
所述装置包括:用户特征参数获取单元,用于获取用户的手臂长度和用户的双肩宽度;
虚拟触摸屏属性参数确定单元,用于根据所述用户的手臂长度和用户的双肩宽度确定虚拟触摸屏的属性参数,所述虚拟触摸屏的属性参数包括虚拟触摸屏的长度、宽度以及虚拟触摸屏与XOY平面的距离;
操作指令确定单元,用于根据用户手掌相对虚拟触摸屏的移动确定屏幕操作点的移动,再根据用户手掌中心质点与XOY平面的距离变化确定用户的操作指令;
操作执行单元,用于根据所述操作指令执行相应的操作。
所述设备包括:包含上述基于虚拟触摸屏的人机交互系统的电子设备。
本发明实施例根据用户舒服度确定虚拟触摸屏所在位置以及该虚拟触摸屏的屏幕大小,当触摸屏接收到用户的操作指令时,根据该操作指令执行相应的操作。由于能够将虚拟触摸屏与XOY平面的距离、宽度等属性参数调整到操作者更舒服的状态,因此使人机交互更自然、方便。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种基于虚拟触摸屏的人机交互方法,在本实施例中,根据用户舒服度确定虚拟触摸屏所在位置以及该虚拟触摸屏的屏幕大小,当触摸屏接收到用户的操作指令时,根据该操作指令执行相应的操作。详述如下:
在步骤S11中,获取用户的手臂长度和用户的双肩宽度。
进一步,在获取用户的手臂长度和用户的双肩宽度的步骤之前,包括下述步骤:
构建人机交互模型。在本实施例中,构建的人机交互模型要素为操作者和人体特征采集功能的被操作对象,该人体特征采集功能的被操作对象包括PC机、电视机等。根据操作者和被操作对象的关系,建立如图2的坐标系。在图2中,用户双肩中心质点与虚拟触摸屏中心质点的连线和XOY平面确定坐标系的原点O,该XOY平面为用户脸所在的平面。
其中,获取用户的手臂长度和用户的双肩宽度的步骤具体为:
A、在用户张开双臂后,根据双目摄像系统、用户手识别技术以及用户脸识别技术采集用户手坐标和用户脸坐标,并根据用户手坐标的集合确定用户手掌中心质点坐标,根据用户脸坐标的集合确定用户脸中心质点坐标,再根据确定的用户手的中心质点坐标和用户脸的中心质点坐标确定最长的用户的手臂长度。根据双目摄像系统、用户手识别技术以及用户脸识别技术采集到多个用户手坐标和多个用户脸坐标,该多个用户手坐标组成了用户手坐标的集合,该多 个用户脸坐标组成了用户脸坐标的集合,中心质点的坐标分量值为所述集合的坐标分量值均值。
本实施例中,在用户张开手臂后,获取用户手的中心质点坐标和用户脸的中心质点坐标,假设得到的用户脸的中心质点坐标为(Xf,Yf,Zf),用户手的中心质点坐标为(Xh,Yh,Zh),X轴正向的手臂肩部的坐标为(0.5Hs,0,0),用户的X轴正向的手臂长度Lh可根据下面公式确定:Lh=((0.5Hs-Xh)2+(-Yh)2+(-Zh)2)1/2,其中Hs为肩宽。为了简化运算,在本步骤的实际计算中可以只计算脸中心质点坐标为(Xf,Yf,Zf)与用户手的中心质点坐标为(Xh,Yh,Zh)的距离作为手臂的粗略长度。
B、将采集的用户图像做一维投影,并比较标识用户双肩的像素与预设的像素长度阈值大小,从而根据比较的结果确定实际的用户的双肩宽度。在本实施例中,根据双目摄像系统和特征识别技术追踪用户,并将用户从背景图像中提取出来,再将提取出来的用户图像做一维投影,比如投影到X轴。预设一个像素长度阈值,预设的像素长度阈值大小可以根据实验统计确定,该像素长度阈值用于确定图像上标识双肩宽度的像素的长度,将一维投影的标识用户双肩的像素集合与像素长度阈值进行比较,便可以确定双肩在X轴投影长度,然后,通过双目视觉坐标系统就可以很容易将投影长度转换为用户实际的双肩宽度。
作为本发明的另一实施方式,考虑到用户操作的简便,用户的手臂长度可根据标准人体的比例来计算。如肩宽是身高的1/4,平伸两臂的宽度等于身高等,因此可以根据人体标准比例以及用户双肩宽度确定用户的手臂长度。
在步骤S12中,根据该用户的手臂长度和用户的双肩宽度确定虚拟触摸屏的属性参数,该虚拟触摸屏的属性参数包括虚拟触摸屏的长度、宽度以及虚拟触摸屏与XOY平面的距离。
其中,根据该用户的手臂长度和用户的双肩宽度确定虚拟触摸屏的属性参数,该虚拟触摸屏的属性参数包括虚拟触摸屏的长度、宽度以及虚拟触摸屏与 XOY平面的距离的步骤具体为:
1、确定虚拟触摸屏与XOY平面的距离和用户手臂长度的比例系数。在本实施例中,在确定了虚拟触摸屏与XOY平面(即用户脸所在的平面)的距离和用户手臂长度的比例系数之后,就能确定虚拟触摸屏与XOY平面的距离。假设虚拟触摸屏与XOY平面的距离为Dv,用户的手臂长度为Lh,虚拟触摸屏与XOY平面的距离和用户手臂长度的比例系数为a,则Dv=Lh*a,本实施例中,a可以根据操作者的舒适度自动调整,通常取a为0.7。
2、根据虚拟触摸屏和用户手臂长度的比例系数确定单手在虚拟触摸屏的最大投影圆半径。图3是图2的俯视图,如图3所示,假设用户手臂与XOY平面的夹角为θ,用户的手臂长度为Lh,虚拟触摸屏与XOY平面的距离为Dv,则用户手臂与XOY平面的夹角取值满足下列条件:Dv≤Lh*sinθ。假设虚拟触摸屏与XOY平面的距离和用户手臂长度的比例系数为a,单手在虚拟触摸屏的投影圆半径为r,则根据公式Dv=Lh*a和Dv≤Lh*sinθ确定r=Lh*cosθ≤Lh*(1-a2)1/2,即单手在虚拟触摸屏的最大投影圆半径为:1减去虚拟触摸屏与XOY平面的距离和用户手臂长度的比例系数的平方差之后,再开平方后乘以用户手臂长度的值,即Lh*(1-a2)1/2。
3、根据虚拟触摸屏与XOY平面的距离和用户手臂长度的比例系数以及虚拟触摸屏的最大投影圆半径确定虚拟触摸屏的长度和宽度。在本实施例中,双手在虚拟触摸屏的最大投影圆的相交弦即为虚拟触摸屏的宽度。如图4所示,假设虚拟触摸屏的长度为H,宽度为V,单手在虚拟触摸屏的最大投影圆半径为R,用户的双肩宽度为Hs,则根据图4可容易得出,虚拟触摸屏的长度等于2倍的用户的双肩宽度,即H=2*Hs。虚拟触摸屏的宽度等于单手在虚拟触摸屏的最大投影圆半径R与用户的双肩宽度一半的平方差之后,再开平方的2倍,即V=2*(R2-(Hs/2)2)1/2,又因为R=Lh*(1-a2)1/2,所以V=2*((Lh2*(1-a2))2-(Hs/2)2)1/2。
在步骤S13中,根据用户手掌相对虚拟触摸屏的移动确定屏幕操作点的移 动,再根据用户手掌中心质点与XOY平面的距离变化确定用户的操作指令。
其中,根据用户手掌中心质点与XOY平面的距离变化确定用户的操作指令的步骤具体为:
A、根据用户手掌相对虚拟触摸屏的移动确定屏幕操作点的移动。在本实施例中,根据获取的用户手掌中心质点的坐标获取用户手掌相对虚拟触摸屏的移动距离,并进而确定屏幕操作点的移动。
B、计算用户手掌在操作中手掌中心质点与XOY平面的距离Hd。作为本发明的一实施方式:获取用户手掌中心质点坐标和用户脸中心质点坐标,并根据该用户手掌中心质点坐标和用户脸中心质点坐标计算用户手掌中心质点与用户脸中心质点的距离作为Hd,具体在于,获取用户手掌中心质点的坐标和用户脸中心质点的坐标,并根据距离公式计算用户手掌中心质点与用户脸中心质点的距离。作为本发明的另外一实施方式:采用通过双目视觉坐标系统,精确获取用户手中心坐标(Xh,Yh,Zh),其深度分量Zh即为手掌中心质点与XOY平面的距离Hd。
C、当距离Hd从小于虚拟触摸屏与XOY平面的距离Dv变为大于等于虚拟触摸屏与XOY平面的距离Dv时,判定操作指令为按下指令。
D、当距离Hd从大于等于虚拟触摸屏与XOY平面的距离Dv变为小于虚拟触摸屏与XOY平面的距离Dv时,判定操作指令为抬起指令。
在步骤S14中,根据该操作指令执行相应的操作。
其中,根据该操作指令执行相应的操作的步骤具体为:
1、在操作指令为按下指令时,触发操作点在实际设备坐标的计算,并根据操作点所在实际设备坐标确定相应的功能操作。在本实施例中,触发操作点在实际设备坐标的计算,并根据操作点在实际设备坐标确定相应的功能操作步骤具体为:e、触发操作点在虚拟触摸屏坐标的采集,并根据操作点在虚拟触摸屏的坐标映射到操作点在实际设备的坐标。在本实施例中,操作点在虚拟触摸屏的坐标是通过采集人体特征技术获得。获取实际设备的屏幕分辨率,并根 据该实际设备的屏幕分辨率、操作点在虚拟触摸屏的坐标以及虚拟触摸屏的长度和宽度计算操作点在实际设备的坐标。例如,假设操作点在虚拟触摸屏的坐标为(Px,Py),实际设备的屏幕分辨率为Hr×Vr,虚拟触摸屏的长度和宽度分别为H和V,操作点在实际设备的坐标为(Pxx,Pyy),则Pxx=Px*Hr/H,Pyy=Py*Vr/V。f、预设一个判断阈值,当操作点在实际设备的坐标的最大差值小于等于该判断阈值时,直接执行操作点在实际设备的坐标所对应的功能操作,否则,执行滑屏操作。在本实施例中,当操作点在实际设备的坐标变化不大时,说明操作点在实际设备的坐标所对应的是同一个功能区域,则直接执行该功能区域对应的功能;当操作点在实际设备的坐标变化较大时,说明操作点的位置变化较大,则触发滑屏功能操作,直到采集到用户的抬起或按下指令。
2、在操作指令为抬起指令时,执行结束功能操作。
在本发明第一实施例中,首先确定虚拟触摸屏与XOY平面的距离和用户手臂长度的比例系数,再结合用户的手臂长度和用户的双肩宽度确定虚拟触摸屏的属性参数。在虚拟触摸屏的属性参数对应的虚拟触摸屏上采集到用户发出的操作指令后,根据该操作指令执行相应的功能操作。由于能够根据操作者的操作舒适度自由调整虚拟触摸屏与XOY平面的距离,因此能够将虚拟触摸屏与XOY平面的距离、宽度等属性参数调整到操作者更舒服的状态,使人机交互更自然、方便。
实施例二:
图5示出了本发明第二实施例提供的基于虚拟触摸屏的人机交互系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该基于虚拟触摸屏的人机交互系统可以用于通过有线或者无线网络连接服务器的各种信息处理终端,例如口袋计算机(Pocket Personal Computer,PPC)、掌上电脑、计算机、笔记本电脑、电视机等,可以是运行于这些终端内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些终端中或者运行于这些终端的应用系统中,其中:
用户特征参数获取单元21,用于获取用户的手臂长度和用户的双肩宽度。
在本实施例中,根据操作者和被操作对象的关系,构建人机交互模型,并获取人机交互模型中用户的手臂长度和用户的双肩宽度。
进一步地,用户特征参数获取单元21包括:用户手臂长度确定模块211和用户双肩宽度确定模块212。
该用户手臂长度确定模块211用于采用双目摄像系统,提取人脸中心质点坐标(Xf,Yf,Zf)与手掌中心质点坐标(Xh,Yh,Zh),根据坐标运算计算手臂长度。在该计算步骤中,还可以计算手臂肩部的坐标为(0.5Hs,0,0),再根据坐标运算,计算手掌中心质点坐标(Xh,Yh,Zh)与手臂肩部的坐标(0.5Hs,0,0)的距离为手臂长度。
该用户双肩宽度确定模块212用于根据用户双肩的投影长度确定用户实际的双肩宽度,或者根据人体标准比例系数以及用户的手臂长度确定用户实际的双肩宽度。
虚拟触摸屏属性参数确定单元22,用于根据该用户的手臂长度和用户的双肩宽度确定虚拟触摸屏的属性参数,该虚拟触摸屏的属性参数包括虚拟触摸屏的长度、宽度以及虚拟触摸屏与XOY平面的距离。
进一步地,虚拟触摸屏属性参数确定单元22包括:距离确定模块221、投影圆半径确定模块222、虚拟触摸屏长度确定模块223以及虚拟触摸屏宽度确定模块224。
该距离确定模块221用于根据公式Dv=Lh*a确定虚拟触摸屏与XOY平面的距离,该Dv为虚拟触摸屏与XOY平面的距离,该Lh为用户的手臂长度,该a为虚拟触摸屏与XOY平面的距离和用户手臂长度的比例系数。
该投影圆半径确定模块222用于根据公式Lh*(1-a2)1/2确定单手在虚拟触摸屏的最大投影圆半径,该Lh为用户的手臂长度,该a为虚拟触摸屏与XOY平面的距离和用户手臂长度的比例系数。
该虚拟触摸屏长度确定模块223用于根据公式H=2*Hs确定虚拟触摸屏的长度,该H为虚拟触摸屏的长度,该Hs为用户的双肩宽度。
该虚拟触摸屏宽度确定模块224用于根据公式V=2*(R2-(Hs/2)2)1/2确定虚拟触摸屏的宽度,该V为虚拟触摸屏的宽度,该R为单手在虚拟触摸屏的最大投影圆半径,该Hs为用户的双肩宽度。
操作指令确定单元23,用于根据用户手掌相对虚拟触摸屏的移动确定屏幕操作点的移动,再根据用户手掌中心质点与XOY平面的距离变化确定用户的操作指令。
进一步地,操作指令确定单元23包括:屏幕操作点确定模块231、手心距离确定模块232、按下指令确定模块233以及抬起指令确定模块234。
屏幕操作点确定模块231,用于根据用户手掌相对虚拟触摸屏的移动确定屏幕操作点的移动。
该手心距离确定模块232,用于获取用户手掌中心质点坐标和XOY平面的距离Hd,所述Hd也是用户手掌中心质点坐标坐标(Xh,Yh,Zh)的深度分量Zh。作为本发明的另一实施方式,也可以根据用户手掌中心质点坐标和用户脸中心质点坐标计算用户手掌中心质点与用户脸中心质点的距离粗略计算为Hd。
该按下指令确定模块233,用于在用户手掌中心质点与与XOY平面的距离Hd从小于XOY平面到虚拟触摸屏的距离变化为大于等于XOY平面到虚拟触摸屏的距离时,判定操作指令为按下指令。
该抬起指令确定模块234,用于在用户手掌中心质点与XOY平面的距离Hd从大于等于XOY平面到虚拟触摸屏的距离变化为小于XOY平面到虚拟触摸屏的距离时,判定操作指令为抬起指令。
操作执行单元24,用于根据该操作指令执行相应的操作。
在本实施例中,在操作指令为按下指令时,触发操作点在实际设备坐标的采集,并根据操作点在实际设备坐标的变化大小执行相应的功能操作。其中, 操作点在实际设备坐标的变化较小的功能操作为直接按下功能,操作点在实际设备坐标的变化较大的功能操作为滑屏功能。而在操作指令为抬起指令时,执行结束功能操作。
在本发明第二实施例中,根据用户特征参数获取单元21以及虚拟触摸屏属性参数确定单元22确定虚拟触摸屏的位置、大小,操作执行单元24再根据操作指令确定单元23的指令执行相应的功能操作。由于能够根据操作者的操作舒适度自由调整虚拟触摸屏与XOY平面的距离和用户体手臂长度的比例系数,因此能够将虚拟触摸屏与XOY平面的距离、宽度等属性参数调整到操作者更舒服的状态,使人机交互更自然、方便。
本发明实施例中,在确定了虚拟触摸屏与XOY平面的距离和用户手臂长度的比例系数之后,再结合用户的手臂长度和用户的双肩宽度确定虚拟触摸屏的属性参数。在虚拟触摸屏的属性参数对应的虚拟触摸屏上采集到用户发出的操作指令后,根据该操作指令执行相应的功能操作。由于能够根据操作者的操作舒适度自由调整虚拟触摸屏与XOY平面的距离和用户体手臂长度的比例系数,因此能够将虚拟触摸屏与XOY平面的距离、宽度等属性参数调整到操作者更舒服的状态,使人机交互更自然、方便。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。