一种人机交互系统的控制方法

文档序号:6621576阅读:214来源:国知局
一种人机交互系统的控制方法
【专利摘要】本发明公开了一种人机交互系统的控制方法。该方法包括:获取多个标识物的图像,其中标识物上设置多个标识点,不同的标识物上设置的标识点具有不同形状,从图像中提取不同形状的标识点,根据标识点的形状对标识点进行分组以获取分组后的标识点形成的几何图形,通过比较当前帧图像的几何形状和前一帧图像对应的几何形状获取标识物的运动状态,根据运动状态输出对应的控制命令至人机交互系统。通过上述方式,本发明能够以较低成本以及相对简单的方式实现人机交互系统的控制。
【专利说明】一种人机交互系统的控制方法

【技术领域】
[0001]本发明涉及人机交互领域,特别是涉及一种人机交互系统的控制方法。

【背景技术】
[0002]随着科技技术的发展,虚拟现实环境被广泛地应用于视频/计算机游戏、仿真器、计算机辅助设计工具等领域中。其中,大多数虚拟现实环境允许用户在六个自由度控制物体,也就是说,允许用户控制物体沿水平轴(horizontal)移动、沿垂直轴(vertiacal)移动、沿缩放轴(zoom)移动、绕水平轴转动(pitch)、绕垂直轴转动(yaw)以及绕缩放轴转动(roll)ο
[0003]在虚拟现实环境的人机交互系统中,一种现有的人机交互系统的控制方法为:通过在跟踪目标(例如,用户头部)上设置运动传感器来实现人机交互系统的控制,其中,运动传感器可以为运动加速器。采用该方法,运动加速器需要通过连接线连接至计算机来跟踪用户头部的运动状态,而连接线的使用会妨碍用户的运动进而减轻用户的体验。其次,用户的运动容易加速处于工作状态的运动加速器的磨损,从而增加系统的成本。最后,运动加速器的测量精度较低,从而限制用户在虚拟现实环境下执行特定任务的能力。


【发明内容】

[0004]本发明主要解决的技术问题是提供一种人机交互系统的控制方法,能够以较低成本以及相对简单的方式实现人机交互系统的控制。
[0005]为解决上述技术问题,本发明采用的一个技术方案是:一种人机交互系统的控制方法,其特征在于,所述方法包括:
[0006]步骤1,获取多个标识物的图像,其中所述标识物上设置多个标识点,不同的所述标识物上设置的所述标识点具有不同形状;
[0007]步骤2,从步骤1所述图像中提取不同形状的所述标识点;
[0008]步骤3,根据步骤2所述标识点的形状对所述标识点进行分组以获取分组后的所述标识点形成的几何图形;
[0009]步骤4,通过比较当前帧图像的所述几何形状和前一帧图像对应的所述几何形状获取所述标识物的运动状态;
[0010]步骤5,根据所述运动状态输出对应的控制命令至人机交互系统。
[0011]进一步,步骤2具体包括:
[0012]21在所述图像中搜索光斑;
[0013]22计算各所述光斑的光密度;
[0014]23选择所述光密度在预定范围内的光斑作为所述标识点。
[0015]1.根据权利要求2所述的方法,其特征在于:步骤22所述光密度根据如下公式进行计算:
4π* S
[0016]Μ =^~;
L
[0017]其中,Μ为光斑的光密度,S为光斑的面积,L为光斑的周长。
[0018]更进一步,步骤3具体包括:
[0019]31根据所述标识点的形状对所述标识点进行分组,其中,分组后的所述标识点具有相同的形状;
[0020]32获取分组后的所述标识点形成的三角形,其中,所述三角形由第一标识点、第二标识点和第三标识点形成,所述第一标识点、第二标识点和第三标识点为按水平坐标的升序排列的标识点。
[0021]再进一步,步骤4具体包括:
[0022]411获取当前帧图像的所述几何形状的平均水平坐标作为第一水平坐标,以及获取前一帧图像对应的所述几何形状的平均水平坐标作为第二水平坐标;
[0023]412通过比较所述第一水平坐标和所述第二水平坐标确定所述标识物沿水平轴的移动;
[0024]其中,所述几何形状的所述平均水平坐标为所述第一标识点、第二标识点和第三标识点的水平坐标的平均值;可以根据如下公式确定标识物沿水平轴的移动:
[0025]Movement_hortizontal = (qlx+q2x+q3x)/3- (plx+p2x+p3x)/3 ;
[0026]其中,qlX、q2X和q3x为当前帧图像的第一标识点、第二标识点和第三标识点的水平坐标,plx、p2x和p3x为前一帧图像的第一标识点、第二标识点和第三标识点的水平坐标;
[0027]其中,当Movement_hortizontal为正值时,表示标识物沿水平轴向右移动,当Movement_hortizontal为负值时,表示标识物沿水平轴向左移动。
[0028]或者,步骤4具体包括:
[0029]421获取当前帧图像的所述几何形状的平均垂直坐标作为第一平均垂直坐标,以及获取前一帧图像对应的所述几何形状的平均垂直坐标作为第二平均垂直坐标;
[0030]422通过比较所述第一平均垂直坐标和所述第二平均垂直坐标确定所述标识物沿垂直轴的移动;
[0031]其中,所述几何形状的所述平均垂直坐标为所述第一标识点、第二标识点和第三标识点的垂直坐标的平均值;可以根据如下公式确定标识物沿垂直轴的移动:
[0032]Movement_vertical = (qly+q2y+q3y)/3- (ply+p2y+p3y)/3 ;
[0033]其中,qly、q2y和q3y为当前帧图像的第一标识点、第二标识点和第三标识点的垂直坐标,Ply、p2y和p3y为前一帧图像的第一标识点、第二标识点和第三标识点的垂直坐标;
[0034]其中,当Movement_vertical为正值时,表示标识物沿垂直轴向上移动,当Movement_vertical为负值时,表示标识物沿垂直轴向下移动。
[0035]或者,步骤4具体包括:
[0036]431获取当前帧图像的所述几何形状的面积作为第一面积,以及获取前一帧图像对应的所述几何形状的面积作为第二面积;
[0037]432通过比较所述第一面积和所述第二面积确定所述标识物沿缩放轴的移动。
[0038]可以根据如下公式确定标识物沿缩放轴的移动:
[0039]Movement—zoom = qarea-parea ;
[0040]其中,qarea为当前帧图像的几何形状的面积,parea为前一帧图像的几何形状的面积;
[0041]其中,当Movement_zoom为正值时,表示标识物沿缩放轴放大移动,Movement—zoom为负值时,表示标识物沿缩放轴缩小移动。
[0042]另外,几何形状的面积marea可以根据如下公式进行计算:
[0043]nia = -^(/?l.v - ηι2χ)2 + (m\y -1nly)2 ;
[0044]mb = ^(m3x - mix)2 + (//?3 v -1nly)2 ;
[0045]me = -yj(m]x - ηι3χ): + ("?1.v - /?3 v):;
[0046]ms = 0.5* (ma+mb+mc);
[0047]mare a = ms* (ms_ma) * (ms_mb) * (ms_mc);
[0048]其中,m为当前帧图像的几何形状q或前一帧图像的几何形状p,ma、mb和me为几何形状的三条边,mlx、m2x和m3x为几何形状的第一标识点、第二标识点和第三标识点的水平坐标,mly、m2y和m3y为几何形状的第一标识点、第二标识点和第三标识点的垂直坐标。
[0049]或者,步骤4具体包括:
[0050]441获取当前帧图像的所述三角形中以所述第二标识点为顶点的角度作为第一角度,以及获取前一帧图像的所述三角形中以所述第二标识点为顶点的角度作为第二角度;
[0051]442通过比较所述第一角度和所述第二角度确定所述标识物绕水平轴的转动。
[0052]可以根据如下公式确定标识物沿水平轴的转动:
[0053]Movement_pitch = q2angle_p2angle ;
[0054]其中,q2angle为当前帧图像的三角形以第二标识点为顶点的角度,p2angle为前一帧图像的三角形以第二标识点为顶点的角度;
[0055]其中,当Movement_pitch为正值时,表示标识物绕水平轴向右转动,当Movement—pitch为负值时,表示运动状态为沿水平轴向左转动。
[0056]另外,三角形以第二标识点为顶点的角度m2angle可以根据如下公式进行计算:
[0057]nm =水m]x - m2x)2 + (/"l.v - m2y):;
[0058]mb = yj(m3x - ni2x)2 + (m3y — m2y)~
[0059]me = ■yjim'x -1n3x)2 + (/?l v - m3v)2 ;
[0060]m2angle = arcos ((ma) 2+ (mb)2- (me)2) / (2*ma*mb));
[0061]其中,m为当前帧图像的几何形状q或前一帧图像的几何形状p,ma、mb和me为几何形状的三条边,mlx、m2x和m3x为几何形状的第一标识点、第二标识点和第三标识点的水平坐标,mly、m2y和m3y为几何形状的第一标识点、第二标识点和第三标识点的垂直坐标。
[0062]或者,步骤4具体包括:
[0063]451获取当前帧图像的所述三角形中以所述第一标识点或所述第三标识点为顶点的角度作为第一角度,以及获取前一帧图像的所述三角形中以所述第一标识点或所述第三标识点为顶点的角度作为第二角度;
[0064]452通过比较所述第一角度和所述第二角度确定所述标识物绕垂直轴的转动。
[0065]具体来说,以第一标识点为顶点的角度为例来说,可以根据如下公式确定标识物沿垂直轴的转动:
[0066]Movement_yaw = qlangle-plangle ;
[0067]其中,qlangle为当前帧图像的三角形以第一标识点为顶点的角度,plangle为前一帧图像的三角形以第一标识点为顶点的角度;
[0068]其中,当Movement_yaw为正值时,表示标识物绕垂直轴向右转动,当Movement—yaw为负值时,表示标识物绕垂直轴向左转动。
[0069]具体来说,以第三标识点为顶点的角度为例来说,可以根据如下公式确定标识物沿垂直轴的转动:
[0070]Movement_yaw = q3angle_p3angle ;
[0071]其中,q3angle为当前帧图像的三角形以第三标识点为顶点的角度,p3angle为前一帧图像的三角形以第三标识点为顶点的角度;
[0072]其中,当Movement_yaw为正值时,表示标识物绕垂直轴向左转动,当Movement—yaw为负值时,表示标识物绕垂直轴向右转动。
[0073]另外,三角形以第一标识点为顶点的角度mlangle和三角形以第三标识点为顶点的角度m3angle可以根据如下公式进行计算:
[0074]nm =」(m\x - πι2χ? + (/;?1 ν - mly)2 ;
[0075]mb = -^(ηβχ - mix) + (///3 v - mly)2
[0076]me =」(in\x — ni3x)2 + (;?1 v — m3})2 ;
[0077]mlangle = arcos ((ma) 2+ (me)2- (mb)2) / (2*ma*mc));
[0078]m3angle = arcos ((me) 2+ (mb)2- (ma)2) / (2*mb*mc));
[0079]其中,m为当前帧图像的几何形状q或前一帧图像的几何形状p,ma、mb和me为几何形状的三条边,mlx、m2x和m3x为几何形状的第一标识点、第二标识点和第三标识点的水平坐标,mly、m2y和m3y为几何形状的第一标识点、第二标识点和第三标识点的垂直坐标。
[0080]或者,步骤4包括:
[0081]461获取当前帧图像的所述第一标识点和所述第三标识点的垂直坐标之差作为第一差值,以及获取前一帧图像对应的所述第一标识点和所述第三标识点的垂直坐标之差作为第二差值;
[0082]462通过比较所述第一差值和所述第二差值确定所述标识物绕缩放轴的转动。
[0083]可以根据如下公式确定标识物沿缩放轴的转动:
[0084]Movement_roll = (qly-q3y)-(ply-p3y);
[0085]其中,qly和q3y为当前帧图像的第一标识点和第三标识点的垂直坐标,ply和p3y为前一帧图像的第一标识点和第三标识点的垂直坐标;
[0086]其中,当Movement_rο 11为正值时,表示标识物绕缩放轴向右转动,Movement_roll为负值时,表示标识物绕缩放轴向左转动。
[0087]本发明的有益效果是:区别于现有技术的情况,本发明通过获取多个标识物的图像并从图像中提取设置于多个标识物上的具有不同形状的标识点,根据标识点的形状对标识点进行分组以获取分组后的标识点形成的几何图形,进一步比较当前帧图像的多个标识点所形成的几何形状和前一帧图像对应的几何形状获取标识物的运动状态,最后根据运动状态输出对应的控制命令至人机交互系统实现人机交互系统的控制。与现有技术相比,本发明通过无线的方式即可实现人机交互系统的控制,不会影响用户的体验。进一步,本发明通过简单的数学算法对标识物的图像进行处理即可实现人机交互系统的控制,实现简单且易于推广。另外,本发明能够同时对多个标识物进行跟踪,从而实现在虚拟现实环境中在六自由度控制多个目标或者在多于六自由度的纬度控制单个目标。

【专利附图】

【附图说明】
[0088]图1是本发明实施方式提供的人机交互系统的控制方法的应用场景图;
[0089]图2是本发明实施方式提供的人机交互系统的控制方法的流程图;
[0090]图3是本发明实施方式中标识物的图像的结构示意图;
[0091]图4-15是本发明实施方式中当前帧图像和前一帧图像对应的几何形状的运动示意图。

【具体实施方式】
[0092]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分的实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都应当属于本发明保护的范围。
[0093]图1是本发明实施方式提供的一种人机交互系统的控制方法的应用场景图,该应用场景可以包括:计算机105、显示器110、键盘120、摄像头115、标识物130和标识物140。其中,本发明的人机交互系统的控制方法部署在计算机105上。
[0094]在本实施方式中,计算机105用于运行基于虚拟现实环境的人机交互系统的软件,并根据摄像头115获取的包括标识物130和标识物140的图像对虚拟现实环境进行控制。显示器110与计算机105连接,用于显示虚拟现实环境。键盘120与计算机连接,用于接收用户输入的命令以设置虚拟现实环境中的参数。
[0095]在本实施方式中,标识物130为可供用户佩戴的眼镜,标识物130上设置有三个标识点135,其中,一个标识点135设置于眼镜的顶部的中间位置,另外两个标识点135分别设置于眼镜的两侧的边缘位置,从而使得三个标识点135形成一三角形的几何形状。标识物140为可供用户握在手中的圆形手持设备,标识物140上设置有三个标识点145,三个标识点145形成一三角形的几何形状。当用户手握标识物140时,摄像头115可以获取到包括三个标识点145的标识物的图形。
[0096]在本实施方式中,设置于标识物130的标识点135和设置于标识物140的标识点145具有不同的形状。
[0097]其中,当摄像头115获取到包括标识物130和标识物140的图像并传递给计算机105后,计算机105从图像中提取不同形状的标识点,也即从图像中提取标识点135和标识点145,根据标识点的形状对标识点进行分组以获取分组后的标识点所形成的几何形状,也即分别获取三个标识点135和三个标识点145所形成的三角形,通过比较当前帧图像的几何形状和前一帧图像对应的几何形状获取标识物的运动状态,也即比较当前帧和前一帧图像中标识点135形成的三角形获取标识物130的运动状态以及比较当前帧和前一帧图像中标识点145形成的三角形获取标识物140的运动状态,根据运动状态输出对应的控制命令至人机交互系统,以实现用户对虚拟现实环境的控制。
[0098]本领域的技术人员可以理解,图1中的计算机105为台式机,计算机105也可以为其它能运行软件的计算系统,本发明不以此为限。图1中的显示器110为液晶显示器,显示器110也可以为其它的显示装置,如模拟显示器、电视机等等,本发明不以此为限。图1以标识物130和标识物140为例进行说明,本领域技术人员可以理解,本发明也可以包括不同于两个的多个标识物,本发明不以两个标识物为限。
[0099]图2是本发明实施方式提供的人机交互系统的控制方法的流程图。需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限。如图2所示,该方法包括步骤:
[0100]步骤S101:获取多个标识物的图像,其中标识物上设置多个标识点,不同的标识物上设置的标识点具有不同形状;
[0101]在步骤S101中,标识物设置于跟踪目标上,标识点设置在标识物上。其中,标识点可以为红外发光二极管(light Emitting D1de,LED、激光发射器(Laser emitter)等等。
[0102]以标识物的数量为两个,两个标识物上分别设置有三个标识点为例来说,如图3所示,在获取的图像中包括标识物1950和标识物1960,具体来说,标识物1950包括第一标识点1910、第二标识点1915和第三标识点1920,第一标识点1910、第二标识点1915和第三标识点1920为按水平坐标的升序排列的标识点,第一标识点1910、第二标识点1915和第三标识点1920均为三角形。标识物1960包括第一标识点1925、第二标识点1930和第三标识点1935,第一标识点1925、第二标识点1930和第三标识点1935为按水平坐标的升序排列的标识点,第一标识点1925、第二标识点1930和第三标识点1935均为圆形。
[0103]步骤S102:从图像中提取标不同形状的标识点;
[0104]在步骤S102中,首先,在图像中搜索光斑,其中,光斑为相邻的具有相同颜色或者大体相同颜色的像素点的集合,不同形状的标识点具有不同形状的光斑。
[0105]接着,计算搜索到的光斑的光密度,其中光密度用于测量光斑中像素点之间的紧密性,不同形状的光斑具有不同的光密度。具体来说,计算搜索到的光斑的光密度的步骤包括:获取各光斑的面积,其中光斑的面积根据光斑中像素点的总个数计算得到;获取各光斑的周长,其中光斑的周长根据光斑外围的像素点的个数计算得到;根据各光斑的面积和对应的周长获取光密度。
[0106]优选地,光密度可以根据如下公式进行计算:
,^ 4π*S
[0107]Μ =^^^;

L.
[0108]其中,Μ为光斑的光密度,S为光斑的面积,L为光斑的周长。
[0109]最后,选择光密度在预定范围内的光斑作为标识点。承接前述举例,当标识物1950中的标识点为三角形时,三角形的标识点的预定光密度为η/3。比较计算得到的光斑的光密度和预定光密度,当光斑的光密度在以预定光密度为中心的第一阈值和第二阈值的预定范围内时,选择该光斑作为三角形的标识点。例如,当第一阈值为1.030,第二阈值为1.062时,则选择光密度大于1.030且小于1.062的光斑作为三角形的标识点。
[0110]当标识物1960中的标识点为圆形时,圆形的标识点的预定光密度为1。比较计算得到的光斑的光密度和预定光密度,当光斑的光密度在以预定光密度为中心的第三阈值和第四阈值的预定范围内时,选择该光斑作为圆形的标识点。例如,当第三阈值为0.99,第四阈值为1.01时,则选择光密度大于0.99且小于1.01的光斑作为圆形的标识点。
[0111]另外,在选择光密度在预定范围内的光斑作为标识点后,获取光密度在预定范围内的光斑的质心。其中,质心为质量中心,其位于光斑的中心,质心的二维坐标即为下文中所述的标识点的二维坐标。
[0112]本领域的技术人员可以理解,本发明也可以根据其它的方法提取标识点,并不限于本实施中上述根据光斑的光密度提取标识点的方法。
[0113]步骤S103:根据标识点的形状对标识点进行分组以获取分组后的标识点形成的几何图形。
[0114]在步骤S103中,分组后的标识点具有相同的形状,分组后的标识点所形成的几何形状由标识点的数目和位置确定。承接前述举例,将形状为三角形的第一标识点1910、第二标识点1915和第三标识点1920分为一组,获取第一标识点1910、第二标识点1915和第三标识点1920所形成的三角形。将形状为圆形的第一标识点1925、第二标识点1930和第三标识点1935分为一组,获取第一标识点1925、第二标识点1930和第三标识点1935所形成的三角形。本领域的技术人员可以理解,几何形状为三角形仅为举例,本发明不以此为限。
[0115]步骤S104:通过比较当前帧图像的几何形状和前一帧图像对应的几何形状获取标识物的运动状态;
[0116]在步骤S104中,标识物的运动状态包括六种不同的运动状态,其分别为标识物沿水平轴的移动、沿垂直轴的移动、沿缩放轴的移动、绕水平轴的转动、绕垂直轴的转动以及绕缩放轴的转动。其中,水平轴、垂直轴和缩放轴相互垂直设置,构成符合右手原则的三维坐标系。
[0117]请一并参考图4-15,图4-15为当前帧图像和前一帧图像对应的几何形状的运动示意图,其中,实线表示当前帧图形的几何形状,虚线表示前一帧图像对应的几何形状,以三角形为例的几何形状进行说明。
[0118]如图4和图5所示,当标识物的运动状态为标识物沿水平轴的移动时,由于当前帧图形和前一帧图像对应的几何形状的大小没有发生改变而仅有几何形状中各标识点的水平坐标发生变化,其可以通过获取当前帧图像的几何形状的平均水平坐标作为第一水平坐标,以及获取前一帧图像对应的几何形状的平均水平坐标作为第二水平坐标,通过比较第一水平坐标和第二水平坐标确定标识物沿水平轴的移动,其中,几何形状的平均水平坐标为第一标识点、第二标识点和第三标识点的水平坐标的平均值。
[0119]具体来说,可以根据如下公式确定标识物沿水平轴的移动:
[0120]Movement_hortizontal = (qlx+q2x+q3x)/3- (plx+p2x+p3x)/3 ;
[0121]其中,qlX、q2X和q3x为当前帧图像的第一标识点、第二标识点和第三标识点的水平坐标,plx、p2x和p3x为前一帧图像的第一标识点、第二标识点和第三标识点的水平坐标;
[0122]其中,当Movement_hortizontal为正值时,表示标识物沿水平轴向右移动,当Movement_hortizontal为负值时,表示标识物沿水平轴向左移动。
[0123]如图6和图7所示,当标识物的运动状态为标识物沿垂直轴的移动时,由于当前帧图形和前一帧图像对应的几何形状的大小没有发生改变而仅有几何形状中各标识点的垂直坐标发生变化,其可以通过获取当前帧图像的几何形状的平均垂直坐标作为第一平均垂直坐标,以及获取前一帧图像对应的几何形状的平均垂直坐标作为第二平均垂直坐标,通过比较第一平均垂直坐标和第二平均垂直坐标确定标识物沿垂直轴的移动,其中,几何形状的平均垂直坐标为第一标识点、第二标识点和第三标识点的垂直坐标的平均值。
[0124]具体来说,可以根据如下公式确定标识物沿垂直轴的移动:
[0125]Movement_vertical = (qly+q2y+q3y)/3- (ply+p2y+p3y)/3 ;
[0126]其中,qly、q2y和q3y为当前帧图像的第一标识点、第二标识点和第三标识点的垂直坐标,Ply、p2y和p3y为前一帧图像的第一标识点、第二标识点和第三标识点的垂直坐标;
[0127]其中,当Movement_vertical为正值时,表示标识物沿垂直轴向上移动,当Movement_vertical为负值时,表示标识物沿垂直轴向下移动。
[0128]如图8和图9所示,当标识物的运动状态为标识物沿缩放轴的移动时,由于当前帧图形和前一帧图像对应的几何形状的大小发生变化而当前帧图形和前一帧图像对应的几何形状中以各标识点为顶点的角度未发生变化,其可以通过获取当前帧图像的几何形状的面积作为第一面积,以及获取前一帧图像对应的几何形状的面积作为第二面积,通过比较第一面积和第二面积确定标识物沿缩放轴的移动。
[0129]具体来说,可以根据如下公式确定标识物沿缩放轴的移动:
[0130]Movement—zoom = qarea-parea ;
[0131]其中,qarea为当前帧图像的几何形状的面积,parea为前一帧图像的几何形状的面积;
[0132]其中,当Movement_zoom为正值时,表示标识物沿缩放轴放大移动,Movement—zoom为负值时,表示标识物沿缩放轴缩小移动。
[0133]另外,几何形状的面积marea可以根据如下公式进行计算:
[0134]ma 二- mix)1 + (/"l.v - mly)1.,
[0135]mb = ^J(m3x - ni2x)2 + (m3y - mly)1 ;
[0136]me = yj(mlx- m3x): +(m\y- m3y)2 ;
[0137]ms = 0.5* (ma+mb+mc);
[0138]mare a = ms* (ms_ma) * (ms_mb) * (ms-mc);
[0139]其中,m为当前帧图像的几何形状q或前一帧图像的几何形状p,ma、mb和me为几何形状的三条边,mlx、m2x和m3x为几何形状的第一标识点、第二标识点和第三标识点的水平坐标,mly、m2y和m3y为几何形状的第一标识点、第二标识点和第三标识点的垂直坐标。
[0140]如图10和图11所示,当标识物的运动状态为标识物绕水平轴的转动时,由于当前帧图形和前一帧图像对应的几何形状的大小发生变化,其可以通过获取当前帧图像的三角形中以第二标识点为顶点的角度作为第一角度,以及获取前一帧图像的三角形中以第二标识点为顶点的角度作为第二角度,通过比较第一角度和第二角度确定标识物绕水平轴的转动。
[0141]具体来说,可以根据如下公式确定标识物沿水平轴的转动:
[0142]Movement_pitch = q2angle_p2angle ;
[0143]其中,q2angle为当前帧图像的三角形以第二标识点为顶点的角度,p2angle为前一帧图像的三角形以第二标识点为顶点的角度;
[0144]其中,当Movement_pitch为正值时,表示标识物绕水平轴向右转动,当Movement—pitch为负值时,表示运动状态为沿水平轴向左转动。
[0145]另外,三角形以第二标识点为顶点的角度m2angle可以根据如下公式进行计算:
[0146]ma = ^(πι\χ - mix)1 + (///1 ν - mly)2 ;
[0147]mb =如”3χ - mix)2 + (m3 v - mly)2 ;
[0148]me = yj(m]x - m3x)2 + (/."l.v - "?3.v)2 ;
[0149]m2angle = arcos ((ma) 2+ (mb)2- (me)2) / (2*ma*mb));
[0150]其中,m为当前帧图像的几何形状q或前一帧图像的几何形状p,ma、mb和me为几何形状的三条边,mlx、m2x和m3x为几何形状的第一标识点、第二标识点和第三标识点的水平坐标,mly、m2y和m3y为几何形状的第一标识点、第二标识点和第三标识点的垂直坐标。
[0151]如图12和图13所示,当标识物的运动状态为标识物沿缩放轴的转动时,由于当前帧图形和前一帧图像对应的几何形状的大小没有发生改变而几何形状中各标识点的垂直坐标和水平坐标同时发生变化,其可以通过获取当前帧图像的第一标识点和第三标识点的垂直坐标之差作为第一差值,以及获取前一帧图像对应的第一标识点和第三标识点的垂直坐标之差作为第二差值,通过比较第一差值和第二差值确定标识物绕缩放轴的转动。
[0152]具体来说,可以根据如下公式确定标识物沿缩放轴的转动:
[0153]Movement_roll = (qly-q3y)-(ply-p3y);
[0154]其中,qly和q3y为当前帧图像的第一标识点和第三标识点的垂直坐标,ply和p3y为前一帧图像的第一标识点和第三标识点的垂直坐标;
[0155]其中,当Movement_rο 11为正值时,表示标识物绕缩放轴向右转动,Movement_roll为负值时,表示标识物绕缩放轴向左转动。
[0156]如图14和图15所示,当标识物的运动状态为标识物沿垂直轴的转动时,由于当前帧图形和前一帧图像对应的几何形状的大小发生改变,其可以通过获取当前帧图像的三角形中以第一标识点或第三标识点为顶点的角度作为第一角度,以及获取前一帧图像的三角形中以第一标识点或第三标识点为顶点的角度作为第二角度,通过比较第一角度和第二角度确定标识物绕垂直轴的转动。
[0157]具体来说,以第一标识点为顶点的角度为例来说,可以根据如下公式确定标识物沿垂直轴的转动:
[0158]Movement_yaw = qlangle-plangle ;
[0159]其中,qlangle为当前帧图像的三角形以第一标识点为顶点的角度,plangle为前一帧图像的三角形以第一标识点为顶点的角度;
[0160]其中,当Movement_yaw为正值时,表示标识物绕垂直轴向右转动,当Movement—yaw为负值时,表示标识物绕垂直轴向左转动。
[0161]具体来说,以第三标识点为顶点的角度为例来说,可以根据如下公式确定标识物沿垂直轴的转动:
[0162]Movement_yaw = q3angle_p3angle ;
[0163]其中,q3angle为当前帧图像的三角形以第三标识点为顶点的角度,p3angle为前一帧图像的三角形以第三标识点为顶点的角度;
[0164]其中,当Movement_yaw为正值时,表示标识物绕垂直轴向左转动,当Movement—yaw为负值时,表示标识物绕垂直轴向右转动。
[0165]另外,三角形以第一标识点为顶点的角度mlangle和三角形以第三标识点为顶点的角度m3angle可以根据如下公式进行计算:
[0166]ma -」(mlx - mix)2 + {mly - m.2y)2 ;
[0167]mb =」(m3x - mix)2 + (m3y - ni2v)2 ;
[0168]me = yj(m\x - m3x)2 + (/"l.v - m3y)2 ;
[0169]mlangle = arcos ((ma) 2+ (me)2- (mb)2) / (2*ma*mc));
[0170]m3angle = arcos ((me) 2+ (mb)2- (ma)2) / (2*mb*mc));
[0171]其中,m为当前帧图像的几何形状q或前一帧图像的几何形状p,ma、mb和me为几何形状的三条边,mlx、m2x和m3x为几何形状的第一标识点、第二标识点和第三标识点的水平坐标,mly、m2y和m3y为几何形状的第一标识点、第二标识点和第三标识点的垂直坐标。
[0172]优选地,在上述六种运动状态中,当运动状态为标识物沿水平轴转动、沿垂直轴转动和绕缩放轴移动的三种运动状态时,由于几何形状的大小均发生变化,为了简化检测的步骤,可以在判断出几何形状的大小发生变化后,通过计算以第一标识点、第二标识点或第三标识点为顶点的角度,然后对该角度进行补偿运算后确定标识物沿缩放轴移动的运动状态。
[0173]步骤S105:根据运动状态输出对应的控制命令至人机交互系统。
[0174]在步骤S105中,根据运动状态与控制命令的对应关系,将检测到的标识物的运动状态转化为对应的控制命令,输出至人机交互系统中。
[0175]在本实施方式中,承接前述举例,当标识物包括标识物1950和标识物1960时,可以利用标识物1950和标识物1960的运动状态同时控制人机交互系统中同一目标,从而实现在多于六个自由度的维度,例如七个、八个自由度上控制目标;也可以利用标识物1950和标识物I960的运动状态控制人机交互系统中的不同目标,从而可以实现例如在改变虚拟现实环境的显示角度的同时在六个自由度控制瞄准目标。
[0176]通过上述实施方式,本发明的人机交互系统的控制方法通过获取多个标识物的图像并从图像中提取设置于多个标识物上的具有不同形状的标识点,根据标识点的形状对标识点进行分组以获取分组后的标识点形成的几何图形,进一步比较当前帧图像的多个标识点所形成的几何形状和前一帧图像对应的几何形状获取标识物的运动状态,最后根据运动状态输出对应的控制命令至人机交互系统实现人机交互系统的控制。与现有技术相比,本发明通过无线的方式即可实现人机交互系统的控制,不会影响用户的体验。进一步,本发明通过简单的数学算法对标识物的图像进行处理即可实现人机交互系统的控制,实现简单且易于推广。另外,本发明能够同时对多个标识物进行跟踪,从而实现在虚拟现实环境中在六自由度控制多个目标或者在多于六自由度的纬度控制单个目标。
[0177]以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1.一种人机交互系统的控制方法,其特征在于,所述方法包括: 步骤1,获取多个标识物的图像,其中所述标识物上设置多个标识点,不同的所述标识物上设置的所述标识点具有不同形状; 步骤2,从步骤I所述图像中提取不同形状的所述标识点; 步骤3,根据步骤2所述标识点的形状对所述标识点进行分组以获取分组后的所述标识点形成的几何图形; 步骤4,通过比较当前帧图像的所述几何形状和前一帧图像对应的所述几何形状获取所述标识物的运动状态; 步骤5,根据所述运动状态输出对应的控制命令至人机交互系统。
2.根据权利要求1所述的方法,其特征在于:步骤2具体包括: 21在所述图像中搜索光斑; 22计算各所述光斑的光密度; 23选择所述光密度在预定范围内的光斑作为所述标识点。
3.根据权利要求2所述的方法,其特征在于:步骤22所述光密度根据如下公式进行计算: ,.4π * S M = ~—; 其中,M为光斑的光密度,S为光斑的面积,L为光斑的周长。
4.根据权利要求2所述的方法,其特征在于:步骤3具体包括: 31根据所述标识点的形状对所述标识点进行分组,其中,分组后的所述标识点具有相同的形状; 32获取分组后的所述标识点形成的三角形,其中,所述三角形由第一标识点、第二标识点和第三标识点形成,所述第一标识点、第二标识点和第三标识点为按水平坐标的升序排列的标识点。
5.根据权利要求4所述的方法,其特征在于:步骤4具体包括: 411获取当前帧图像的所述几何形状的平均水平坐标作为第一水平坐标,以及获取前一帧图像对应的所述几何形状的平均水平坐标作为第二水平坐标; 412通过比较所述第一水平坐标和所述第二水平坐标确定所述标识物沿水平轴的移动; 其中,所述几何形状的所述平均水平坐标为所述第一标识点、第二标识点和第三标识点的水平坐标的平均值;可以根据如下公式确定标识物沿水平轴的移动:Movement_hortizontal = (qlx+q2x+q3x)/3-(plx+p2x+p3x)/3 ; 其中,qlx、q2x和q3x为当前帧图像的第一标识点、第二标识点和第三标识点的水平坐标,plx>p2x和p3x为前一帧图像的第一标识点、第二标识点和第三标识点的水平坐标;其中,当Movement_hortizontal为正值时,表示标识物沿水平轴向右移动,当Movement_hortizontal为负值时,表示标识物沿水平轴向左移动。
6.根据权利要求4所述的方法,其特征在于:步骤4具体包括: 421获取当前帧图像的所述几何形状的平均垂直坐标作为第一平均垂直坐标,以及获取前一帧图像对应的所述几何形状的平均垂直坐标作为第二平均垂直坐标; 422通过比较所述第一平均垂直坐标和所述第二平均垂直坐标确定所述标识物沿垂直轴的移动; 其中,所述几何形状的所述平均垂直坐标为所述第一标识点、第二标识点和第三标识点的垂直坐标的平均值;可以根据如下公式确定标识物沿垂直轴的移动:Movement_vertical = (qly+q2y+q3y)/3-(ply+p2y+p3y)/3 ; 其中,qly、q2y和q3y为当前帧图像的第一标识点、第二标识点和第三标识点的垂直坐标,ply、p2y和p3y为前一帧图像的第一标识点、第二标识点和第三标识点的垂直坐标;其中,当Movement_vertical为正值时,表示标识物沿垂直轴向上移动,当Movement—vertical为负值时,表示标识物沿垂直轴向下移动。
7.根据权利要求4所述的方法,其特征在于:步骤4具体包括: 431获取当前帧图像的所述几何形状的面积作为第一面积,以及获取前一帧图像对应的所述几何形状的面积作为第二面积; 432通过比较所述第一面积和所述第二面积确定所述标识物沿缩放轴的移动。 可以根据如下公式确定标识物沿缩放轴的移动:
Movement_zoom = qarea-parea ; 其中,qarea为当前帧图像的几何形状的面积,parea为前一帧图像的几何形状的面积; 其中,当Movement_zoom为正值时,表示标识物沿缩放轴放大移动,Movement_zoom为负值时,表示标识物沿缩放轴缩小移动。 另外,几何形状的面积marea可以根据如下公式进行计算:
ma =、丨(rn'x - ηι2χ)~ + (ml v - m2y)~ ;
mb = yj(in3x - m2x)」+ (/?3 v -1nly) ';
me = -yj(in1.V - /?3.v): + (/?I v - ni3v)~ ;
ms = 0.5* (ma+mb+mc);
marea = ms*(ms_ma)*(ms-mb)*(ms-mc); 其中,m为当前巾贞图像的几何形状q或前一巾贞图像的几何形状p,ma、mb和me为几何形状的三条边,mlx、m2x和m3x为几何形状的第一标识点、第二标识点和第三标识点的水平坐标,mly、m2y和m3y为几何形状的第一标识点、第二标识点和第三标识点的垂直坐标。
8.根据权利要求4所述的方法,其特征在于:步骤4具体包括: 441获取当前帧图像的所述三角形中以所述第二标识点为顶点的角度作为第一角度,以及获取前一帧图像的所述三角形中以所述第二标识点为顶点的角度作为第二角度; 442通过比较所述第一角度和所述第二角度确定所述标识物绕水平轴的转动。 可以根据如下公式确定标识物沿水平轴的转动:
Movement_pitch = q2angle_p2angle ; 其中,q2angle为当前帧图像的三角形以第二标识点为顶点的角度,p2angle为前一帧图像的三角形以第二标识点为顶点的角度; 其中,当Movement_pitch为正值时,表示标识物绕水平轴向右转动,当Movement—pitch为负值时,表示运动状态为沿水平轴向左转动。 另外,三角形以第二标识点为顶点的角度m2angle可以根据如下公式进行计算:
/ ?α =-1n2x)2 + ("/l.v - ηι2νγ ;
mb =」(ι!?χ - mix)2 + (/?3 V - mly)2 ;
me = λ](πι\λ - η?.χ)2 + (m\y - ηβγ)1 ;
m2angle = arcos ((ma)2+ (mb)2- (me)2) / (2*ma*mb)); 其中,m为当前巾贞图像的几何形状q或前一巾贞图像的几何形状p,ma、mb和me为几何形状的三条边,mlx、m2x和m3x为几何形状的第一标识点、第二标识点和第三标识点的水平坐标,mly、m2y和m3y为几何形状的第一标识点、第二标识点和第三标识点的垂直坐标。
9.根据权利要求4所述的方法,其特征在于:步骤4具体包括: 451获取当前帧图像的所述三角形中以所述第一标识点或所述第三标识点为顶点的角度作为第一角度,以及获取前一帧图像的所述三角形中以所述第一标识点或所述第三标识点为顶点的角度作为第二角度; 452通过比较所述第一角度和所述第二角度确定所述标识物绕垂直轴的转动。 具体来说,以第一标识点为顶点的角度为例来说,可以根据如下公式确定标识物沿垂直轴的转动:
Movement_yaw = qlangle-pIangle ; 其中,qlangle为当前帧图像的三角形以第一标识点为顶点的角度,plangle为前一帧图像的三角形以第一标识点为顶点的角度; 其中,当Movement_yaw为正值时,表示标识物绕垂直轴向右转动,当Movement_yaw为负值时,表示标识物绕垂直轴向左转动。 具体来说,以第三标识点为顶点的角度为例来说,可以根据如下公式确定标识物沿垂直轴的转动:
Movement_yaw = q3angle-p3angle ; 其中,q3angle为当前帧图像的三角形以第三标识点为顶点的角度,p3angle为前一帧图像的三角形以第三标识点为顶点的角度; 其中,当Movement_yaw为正值时,表示标识物绕垂直轴向左转动,当Movement_yaw为负值时,表示标识物绕垂直轴向右转动。 另外,三角形以第一标识点为顶点的角度mlangle和三角形以第三标识点为顶点的角度m3angle可以根据如下公式进行计算:
ma -1j(in\x - mix)2 + (/?1 v - ηι2χγ ]
mb =」(m3x - ηι2χ)2 + (ηι3ν - mly)2 ;
me =」(?!?χ - ηι3χ)2 + (/--1 ν - /;/3 ν)2 ;
mlangle = arcos ((ma)2+ (me)2- (mb)2) / (2*ma*mc));
m3angle = arcos ((me)2+ (mb)2- (ma)2) / (2*mb*mc)); 其中,m为当前巾贞图像的几何形状q或前一巾贞图像的几何形状p,ma、mb和me为几何形状的三条边,mlx、m2x和m3x为几何形状的第一标识点、第二标识点和第三标识点的水平坐标,mly、m2y和m3y为几何形状的第一标识点、第二标识点和第三标识点的垂直坐标。
10.根据权利要求4所述的方法,其特征在于:步骤4包括: 461获取当前帧图像的所述第一标识点和所述第三标识点的垂直坐标之差作为第一差值,以及获取前一帧图像对应的所述第一标识点和所述第三标识点的垂直坐标之差作为第二差值; 462通过比较所述第一差值和所述第二差值确定所述标识物绕缩放轴的转动。 可以根据如下公式确定标识物沿缩放轴的转动:
Movement_roll = (qly-q3y)-(ply-p3y); 其中,qly和q3y为当前帧图像的第一标识点和第三标识点的垂直坐标,ply和p3y为前一帧图像的第一标识点和第三标识点的垂直坐标; 其中,当Movement_roll为正值时,表示标识物绕缩放轴向右转动,Movement_roll为负值时,表示标识物绕缩放轴向左转动。
【文档编号】G06F3/01GK104298345SQ201410364071
【公开日】2015年1月21日 申请日期:2014年7月28日 优先权日:2014年7月28日
【发明者】李江, 王卫红, 杨洁 申请人:浙江工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1