发明内容
有鉴于此,本发明的目的是提供实现非接触式操作的方法和装置,可以使操作者在不接触被控设备的情况下,实现语义更丰富的三维操作。
为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
本发明的技术方案是这样实现的:
一种实现非接触式操作的方法,预先设定指尖点的类型和动作所对应的操作;该方法还包括:
识别输入的指尖点、及输入的指尖点的类型和在真实空间中的动作;
对输入的指尖点所在区域内的操作对象,执行输入的指尖点的类型和动作对应的操作。
可选的,所述识别输入的指尖点,包括:
提取操作者输入手形的手形轮廓;
从输入手形的手形轮廓中提取输入的指尖点和指间点。
可选的,所述提取输入的指尖点和指间点,包括:
序列化输入手形的手形轮廓;
计算序列化后的输入手形的手形轮廓上每一点的曲率值;
选择曲率值极大值点作为备选集;
将所述备选集中的局部极大值点作为输入的指尖点和指间点。
可选的,还包括:标记属于同一输入手形的手形轮廓的输入的指尖点;
所述执行输入的指尖点的类型和动作对应的操作,是对每个输入手形中输入的指尖点所在区域的操作对象分别进行的。
可选的,所述输入的指尖点所在区域的确定方法包括:
获取每个输入手形中各输入的指尖点在真实空间中的三维坐标;
当所述操作界面位于真实空间中时,将每个输入手形中各输入的指尖点的三维坐标周围设定范围内的空间,作为该输入手形中输入的指尖点所在区域;
当所述操作界面位于二维显示平面中时,将每个输入手形中各输入的指尖点的三维坐标投影到所述二维显示空间中,将投影点周围设定范围内的平面作为该输入手形中各输入的指尖点所在区域。
可选的,还包括:预先建立模板库,所述模板库的一个模板中记录一个标准手形的标准指尖点、标准指尖点的类型、及每个标准指尖点与相邻标准指间点间沿标准手形的手形轮廓的路径长度;
所述识别输入的指尖点的类型,包括:
分别计算每个输入手形中每个输入的指尖点与相邻指间点间沿该输入手形的手形轮廓的路径长度;
查找每个输入手形使用的模板,查找出的模板中记录有与该输入手形中各个输入的指尖点在路径长度上相匹配的标准指尖点;
针对每个输入手形的每个输入的指尖点,将相匹配的标准指尖点的类型,作为识别出的类型。
可选的,所述计算每个输入手形中每个输入的指尖点与相邻指间点间沿输入手形的手形轮廓的路径长度,包括:
获取每个输入手形的手形轮廓上的每一点在真实空间中的三维坐标;
针对每个输入手形,计算每个输入的指尖点与相邻指间点之间的范围内、该输入手形轮廓上相邻的每两个点间的欧式距离,将计算出的所有欧式距离相加,得到该输入的指尖点与相邻指间点间沿该输入手形的手形轮廓的路径长度。
可选的,针对一个输入的指尖点,查找出的模板中存在两个相匹配的标准指尖点时,如果同一输入手形中相邻的输入的指尖点的类型为拇指,识别该输入的指尖点为食指;如果同一输入手形中相邻的输入的指尖点的类型为小指,识别该输入的指尖点为无名指;如果同一输入手形中相邻的输入的指尖点的类型既不是拇指也不是小指,识别该输入的指尖点为食指。
可选的,所述输入的指尖点的类型和动作对应的操作为更新所述模板库时,还包括:在所述模板库中加入新的模板。
可选的,所述模板的生成方法包括:
提取标准手形的手形轮廓;
从标准手形的手形轮廓中提取标准指尖点和标准指间点;
分别计算每个标准指尖点与相邻的标准指间点之间沿标准手形的手形轮廓的路径长度。
可选的,所述计算标准指尖点与相邻标准指间点间沿标准手形的手形轮廓的路径长度,包括:
获取标准手形的手形轮廓上的每一点在真实空间中的三维坐标;
分别计算每个标准指尖点与相邻标准指间点之间的范围内、该标准手形轮廓上每两个相邻的点间的欧式距离,将计算出的所有欧式距离相加,得到该标准指尖点与相邻标准指间点间沿标准手形的手形轮廓的路径长度。
可选的,所述提取标准指尖点和标准指间点,包括:
序列化提取的标准手形的手形轮廓;
计算序列化后的标准手形的手形轮廓上的每一点的曲率值;
选择曲率值极大值点作为备选集;
将所述备选集中的局部极大值点作为标准指尖点和标准指间点。
一种实现非接触式操作的装置,该装置包括: 第一识别模块,用于识别输入的指尖点;
第二识别模块,用于识别输入的指尖点的类型;
第三识别模块,用于识别输入的指尖点在真实空间中的动作;
执行模块,用于对输入的指尖点所在区域内的操作对象,执行输入的指尖点的类型和动作对应的操作。
可选的,所述第一识别模块包括:
第一提取子模块,用于提取操作者输入手形的手形轮廓;
第二提取子模块,用于从输入手形的手形轮廓中提取输入的指尖点和指间点。
可选的,所述第二提取子模块包括:
序列化单元,用于序列化输入手形的手形轮廓;
计算单元,用于计算序列化后的输入手形的手形轮廓上的每一点的曲率值;
提取执行单元,用于选择曲率值极大值点作为备选集,将所述备选集中的局部极大值点作为输入的指尖点和指间点。
可选的,该装置还包括:标记模块,用于标记属于同一输入手形的手形轮廓上的输入的指尖点;
所述执行模块执行输入的指尖点的类型和动作对应的操作,是对不同输入手形中输入的指尖点所在区域的操作对象分别进行的。
可选的,所述执行模块获取每个输入手形中各输入的指尖点在真实空间中的三维坐标;当操作界面位于真实空间中时,将每个输入手形中各输入的指尖点的三维坐标周围设定范围的空间,作为该输入手形中各输入的指尖点所在区域;当操作界面位于二维显示空间中时,将每个输入手形中各输入的指尖点的三维坐标投影到所述二维显示空间中,将投影点周围设定范围内的平面作为该输入手形中各输入的指尖点所在区域。
可选的,该装置还包括生成模块和模板库,所述生成模块用于在模板库中生成模板,一个模板中记录一个标准手形的标准指尖点、标准指尖点的类型、及每个标准指尖点与相邻标准指间点间沿标准手形的手形轮廓的路径长度;
所述第二识别模块包括:
计算子模块,用于分别计算每个输入手形中每个输入的指尖点与相邻指间点间沿该输入手形的手形轮廓的路径长度;
查找子模块,用于查找每个输入手形要使用的模板,查找出的模板中记录有与该输入手形中各个输入的指尖点在路径长度上相匹配的标准指尖点;针对每个输入手形的每个输入的指尖点,将相匹配的标准指尖点的类型,作为识别出的类型。
可选的,所述计算子模块包括:
获取单元,用于获取每个输入手形的手形轮廓上的每一点在真实空间中的三维坐标;
计算单元,用于针对每个输入手形,计算每个输入的指尖点与相邻指间点之间的范围内、该输入手形轮廓上相邻的每两个点间的欧式距离,将计算出的所有欧式距离相加,得到该输入的指尖点与相邻指间点间沿该输入手形的手形轮廓的路径长度。
可选的,针对一个输入的指尖点,所述查找子模块查找出的模板中存在两个相匹配的标准指尖点时,如果同一输入手形中相邻的输入的指尖点的类型为拇指,所述查找子模块识别该输入的指尖点为食指;如果同一手形中相邻的输入的指尖点的类型为小指,所述查找子模块识别该输入的指尖点为无名指;如果同一手形中相邻的输入的指尖点的类型既不是拇指也不是小指,所述查找子模块识别该手指的指尖点为食指。
可选的,所述输入的指尖点的类型和动作对应的操作为更新所述模板库时,所述执行模块进一步触发所述生成模块在所述模板库中加入新的模板。
可选的,所述生成模块包括:
第三提取子模块,用于提取标准手形的手形轮廓;
第四提取子模块,用于从标准手形的手形轮廓中提取标准指尖点和标准指间点;
计算子模块,用于分别计算每个标准指尖点与相邻的标准指间点之间沿标准手形的手形轮廓的路径长度。
可选的,所述计算子模块包括:
获取单元,用于获取标准手形的手形轮廓上的每一点在真实空间中的三维坐标;
第一计算单元,用于分别计算每个标准指尖点与相邻标准指间点之间的范围内、标准手形轮廓上每两个相邻的点之间的欧式距离,将计算出的所有欧式距离相加,得到该标准指尖点与相邻的标准指间点间沿标准手形的手形轮廓的路径长度。
可选的,所述第四提取子模块包括:
序列化单元,用于序列化标准手形的手形轮廓;
计算单元,用于计算序列化后的标准手形的手形轮廓上的每一点的曲率值;
提取执行单元,用于选择曲率值极大值点作为备选集,将所述备选集中的局部极大值点作为标准指尖点和标准指间点。
本发明实现非接触式操作的方法和装置中,将操作与输入的指尖点的类型和动作对应,一方面,这样可以为不同手指的相同动作赋予不同的含义,从而实现语义更丰富的操作,例如食指点击为选中操作界面中的某按钮,中指点击为在操作界面上打开右键菜单等,另一方面,操作者无需实际接触被控设备,而只需在真实空间中做出对应动作,即可实现操作,非常便捷和灵活。
为了上述以及相关的目的,一个或多个实施例包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明某些示例性方面,并且其指示的仅仅是各个实施例的原则可以利用的各种方式中的一些方式。其它的益处和新颖性特征将随着下面的详细说明结合附图考虑而变得明显,所公开的实施例是要包括所有这些方面以及它们的等同。
说明书附图
图1为本发明实现非接触式操作的方法的流程图;
图2a和图2b为平行双目视觉距离传感器测量距离的原理图;
图3为本发明实施例中拍摄标准手形得到的视图;
图4为本发明实施例中建立模板的流程图;
图5为本发明实施例中的曲线示意图;
图6为本发明实施例中实现非接触式操作的方法流程图;
图7为本发明实现非接触式操作的装置的结构示意图;
图8为本发明实施例中实现非接触式操作的装置的结构示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的组件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
本发明中,预先设定指尖点的类型和动作所对应的操作。
图1为本发明实现非接触式操作的方法的流程图,该流程包括:
步骤11:识别输入的指尖点、及输入的指尖点的类型和在真实空间中的动作。
输入的指尖点指操作者需要进行实际操作控制时,输入手形中的各指尖点。
输入的指尖点的类型指该指尖点是拇指、食指、中指、无名指或小指。
输入的指尖点的动作包括点击、划动、旋转等各种可在真实空间中实现的动作。
步骤12:对输入的指尖点所在区域内的操作对象,执行输入的指尖点的类型和动作对应的操作。
本发明中,可以将操作界面投射到真实空间中向操作者显示,也可以将操作界面在二维显示平面中向操作者显示。在不同的显示方式下,输入的指尖点所在区域包括如下两种含义:
第一、当操作界面位于真实空间中时,将输入的指尖点周围设定范围内的空间作为输入的指尖点所在区域;
第二、当操作界面位于二维显示平面中时,将输入的指尖点投影到二维显示空间中的投影点周围设定范围内的平面作为输入的指尖点所在区域。投影可以使用常用的方法实现,这里不再赘述。
本步骤中的操作对象,包括图标、按钮和图片等。
可见,本发明实现非接触式操作的方法中,将操作与输入的指尖点的类型和动作对应,一方面,这样可以为不同手指的相同动作赋予不同的含义,从而实现语义更丰富的操作,例如食指点击为选中操作界面中的某按钮,中指点击为在操作界面上打开右键菜单等,另一方面,操作者无需实际接触被控设备,而只需在真实空间中做出对应动作,即可实现操作,非常便捷和灵活。
下面给出本发明方法的实施例,在本实施例中,向操作者输出示波器操作界面,该操作界面中包括显示区域和各种按钮,该操作界面既可以投射到真实空间中显示,也可以在二维显示平面中显示,这里不做限定。
本实施例中将使用平行双目视觉距离传感器提取手形轮廓及计算手形轮廓上各个点在真实空间中的三维坐标,图2a和图2b为平行双目视觉距离传感器测量距离的原理图,其中图2b为俯视图。两台焦距为f的摄像机平行放置,光轴之间的距离为T,图2a中的两个矩形分别表示左右摄像机的成像平面,O l 和O r 为左右摄像机的焦点,假设操作者的选中手势为该场景中的P点,在左右摄像机成像平面上的成像点分别为p l 和p r ,它们在成像平面上的成像坐标为x l 和x r ,将d = x l - x r 定义为视差。
真实空间的坐标系以左摄像机的交点O l 为原点,O l 和O r 所在直线为X轴,左摄像机的光轴为Z轴,垂直于XZ轴的为Y轴,则P点与摄像机的距离,即P点在真实空间中的三维坐标按照如下公式(1)计算。
本实施例中,在系统初始化时,需建立模板库,针对不同操作者的左右手的标准手形分别建立不同的模板,即每个模板都对应一个标准手形。这里的标准手形指各手指均无遮挡、且能够被独立识别,本实施例中取五指完全伸直的手形为标准手形,为与前述输入的指尖点相区别,将标准手形中的指尖点和指间点分别称为标准指尖点和标准指间点。
基于图2a和图2b所示的双目摄像头,图3为本发明实施例中建立标准手形模板的流程图,该流程包括:
步骤31:识别标准手形中的标准指尖点。
本步骤中,先利用如图2a和2b所示的双目摄像头,提取标准手形的手形轮廓,再从标准手形的手形轮廓中提取标准指尖点和标准指间点。
上述提取标准指尖点和标准指间点,具体包括:
首先按照顺时针或逆时针的顺序对标准手形的手形轮廓进行序列化,然后计算序列化后的标准手形的手形轮廓上的每一点的曲率值,选取曲率值极大值点作为备选集,对备选集中的点进行局部极大值筛选,即可确定标准指尖点和标准指间点。
这里的序列化,指的是为标准手形的手形轮廓上的每一个点标出其前一个点和后一个点,形成链表。
如图4所示,本步骤中从视图中提取的标准指尖点的位置标记为
、
、
、
和
,提取的标准指间点的位置标记为
、
、
和
。
步骤32:分别计算每个标准指尖点与相邻标准指间点间沿标准手形的手形轮廓的路径长度。
本步骤中,需先获取标准手形的手形轮廓上每一个点在真实空间中的三维坐标,具体是利用双目摄像头拍摄的两幅图像进行稠密视差计算,再通过公式(1)计算手形轮廓上每一个点在真实空间中的三维坐标。
上述稠密视差计算中,从左图到右图计算和从右图到左图计算出来的视差可能会有细微差别,但该差别可以忽略不计,因此可以选择从左图到右图计算或从右图到左图计算。
如图5所示的三维曲线,要计算该曲线上
和
之间沿该曲线的路径长度,需计算
和
范围内、标准手形的手形轮廓上相邻的每两个点间的欧式距离,然后将计算出的所有欧式距离相加。以
和
之间的
和
两点为例,通过如下公式(2)计算
和
之间的欧式距离。
然后通过如下公式(3)计算
和
之间沿手形轮廓的路径长度。
(3)
因此本步骤中可以按照公式(2)和公式(3),分别计算每个标准指尖点与其相邻的标准指间点之间沿标准手形的手形轮廓的路径长度,如果以图4中的标记来表示,需分别计算
和
、
和
、
和
、
和
、
和
、
和
、
和
、
和
之间沿标准手形的手形轮廓的路径长度,分别记为
、
、
、
、
、
、
和
。可以看出其中有三个标准指尖点同时对应有两个路径长度。
本实施例中,系统可以规定操作者输入标准手形时,先输入右手再收入左手,或是先输入左手再输入右手,因此根据该规定的方向性,可以直接确定出各个标准指尖点的类型。或者,在不规定方向的情况下,由于拇指和小指的指尖点都只存在一个相邻指间点,而食指、中指和无名指的指尖点都存在两个相邻指间点,且其中食指的指尖点与和拇指之间的指间点沿手形轮廓的路径长度较长,中指和无名指的指尖点与两个相邻的指间点沿手形轮廓的路径长度差不多相等,因此通过这些约束条件,计算出各个标准指尖点对应的路径长度后,也可以分别确定出各个标准指尖点的类型。
本实施例中,每个模板都记录有如表1所示的内容,即该模板对应的标准手形的标准指尖点、每个标准指尖点的类型、及每个标准指尖点与相邻标准指间点间沿标准手形的手形轮廓的路径长度。
指尖点 |
标识1 |
标识2 |
标识3 |
标识4 |
标识5 |
指尖点的类型 |
拇指 |
食指 |
中指 |
无名指 |
小指 |
对应的路径长度 |
|
和 |
和 |
和 |
|
表1
以上以平行双目视觉距离传感器为例,如果使用其他类型传感器,例如红外或激光距离传感器等时,可以利用相关技术成像,并从所成的像中提取标准手形的手形轮廓,同时利用这些传感器将可以直接获得标准手形的手形轮廓上每个点在真实空间中的三维坐标。
图6为本发明实施例中实现非接触式操作的方法流程图,该流程包括:
步骤61:识别输入的指尖点、及输入的指尖点的归属。
本步骤中,使用和步骤31和步骤32类似的方法,识别输入的指尖点,并标记属于同一输入手形的手形轮廓的输入的指尖点,即这些输入的指尖点属于同一输入手形。
步骤62:确定输入的指尖点的类型和在真实空间中的动作。
本步骤中,针对每个输入手形执行如下操作:
首先,计算每个输入的指尖点与相邻指间点之间沿输入手形的手形轮廓的路径长度。这里,如果输入的指尖点存在两个相邻指间点,则计算出对应的两个路径长度,分别记为
和
,如果指尖点本身只存在一个相邻的指间点,则实际只计算出对应的一个路径长度,记为
。
其次,查找要使用的模板,查找的方法可以是:针对对应有一个路径长度的输入的指尖点,遍历模板库中的每一个标准指尖点,计算
及
,选择最小的
对应的标准指尖点作为相匹配的指尖点;针对对应有两个路径长度的输入的指尖点,分别计算
、
、
及
,选择
和
最小时对应的同一标准指尖点作为相匹配的标准指尖点。最终查找出的一个模板,应该同时记录有与输入手形的各个输入的指尖点在路径距离上相匹配的标准指尖点。
最后,针对每个输入的指尖点,将查找到的模板中相匹配的标准指尖点的类型,作为识别的类型。
考虑到食指和无名指的长度相近,如果针对某个输入的指尖点在查找出的模板中存在两个相匹配的标准指尖点,则进一步采用相邻约束的方法确定输入的指尖点的类型。具体包括:如果与该输入的指尖点相邻的输入的指尖点已识别为拇指,则识别该输入的指尖点为食指;如果与该输入的指尖点相邻的输入的指尖点已识别为小指,则识别该输入的指尖点为无名指;如果与该输入的指尖点相邻的输入的指尖点既没有识别为拇指也没有识别为小指,则识别该输入的指尖点为食指。
因为单独用无名指操作的舒适性很差(一般人独立伸出无名指的难度较大),因此本发明实施例中将无名指和食指的独立动作定义为同一语义,这样的定义可以使得将无名指判定为食指不影响动作的语义。
在实际应用中,不排除不同操作者的标准手形比较接近的情况,这时可能查找出多个模板,由于这些操作者的标准手形差别很小,所以选择任何一个模板使用,都不会对操作控制流程中的识别造成影响,这时可以选择任意一个模板。另外,针对某些操作者的左右手各手指长度相差不多的情况,可能出现当前输入手形为左手,而最终查找出的模板是右手的情况,但由于本发明中仅以指尖点类型和动作来定义操作的语义,因此即使出现这种情况,并不会影响操作控制的实施。
本步骤中,在知晓指尖点在真实空间中的三维坐标的情况下,确定其动作可以按照常规方法进行,这里不再赘述,这里的动作可以是点击、划动、旋转等。
步骤63:根据输入的指尖点的类型和动作,对每个输入手形的各输入的指尖点所在区域内的操作对象分别执行操作。
本步骤中,同一手形的指尖点可能是一个,也可能是多个。
具体可以执行的操作举例如下:
1)点击动作:操作者伸出一只手,用五个指尖点中的任意一个,沿着操作对象允许运动的方向进行单次点击。例如针对操作界面中的某一按钮,由食指点击控制选中,由中指点击控制打开右键菜单。如本实施例的示波器操作界面中,可以对示波器上的某一按钮,由食指点击按下,中指点击弹起。
2)滑动动作:操作者伸出一只手,用五个指尖点中的任意一个,在空间中任意移动。例如,用食指划动表示拖动对象在空间移动,用拇指划动表示切换当前操作对象,用小指划动表示创建一条空间曲线等。如本实施例的示波器操作界面中,可以用小指在示波器的显示屏区域划动以创建一条观察曲线。
3)抓取动作:操作者伸出一只手,采用拇指,食指,中指指尖点的间距缩小的方式表示空间中操作对象的拿取。例如抓取需要操作的示波器。
4)释放动作:操作者伸出一只手,采用拇指,食指,中指指尖点的间距放大的方式表示空间中操作对象的丢弃。例如释放当前操作的示波器。
5)旋转动作:操作者伸出一只手,采用拇指,食指,中指指尖点的间距不变且围绕某一中心点旋转的方式表示空间中的操作对象以自身中心为轴旋转。如本实施例的示波器操作界面,旋转示波器的旋钮,调整输入值。
6)翻转动作:操作者伸出一只手,采用拇指指尖点单击操作对象并且保持不动,食指指尖点在沿该操作对象可旋转方向进行划动,来选中空间中某操作对象,并且对其进行旋转操作。例如旋转旋钮改变旋钮位置,旋转钥匙打开锁或者关闭锁等动作。如本实施例的示波器操作界面,可以翻转示波器的按钮,改变输入值。
7)放大动作:操作者伸出一只手,采用拇指和食指指尖点的间距沿操作对象某一方向进行扩大的方式来表示某一维度的放大。例如采用拇指和中指指尖点的间距沿任意方向扩大的方式表示将该物体进行整体放大。
8)缩小动作:操作者伸出一只手,采用拇指和食指指尖点的间距沿操作对象某一方向进行缩小来表示某一维度的缩小。例如,采用拇指和中指指点间距沿任意方向缩小的方式来表示将该物体进行整体缩小。例如对示波器显示的波形进行放大和缩小操作。
9)推拉动作:操作者伸出一只手后,采用n(n>2)个指尖点沿运动方向进行位移的方式来表示操作对象在某一方向上进行整体位移。例如将某接线推入示波器的接入口或者拔出接头等动作。
本实施例中,操作者还可以伸出两只手分别进行上述1)至9)中的不同操作,还可以支持多人多手操作。
进一步,本实施例中,在模板库中已存在对应模板的操作者,可以通过既定手形并结合点击动作触发操作界面上用于模板库更新的按钮,此时,新的操作者可以输入自己的标准手形,按照前文介绍过的方法生成对应左右手的模板。这样就可以帮助新的操作者在模板库中建立模板。
图7为本发明实现非接触式操作的装置的结构示意图,该装置包括:第一识别模块71、第二识别模块72、第三识别模块73和执行模块74。
第一识别模块71,用于识别输入的指尖点。
第二识别模块72,用于识别输入的指尖点的类型。
第三识别模块73,用于识别输入的指尖点在真实空间中的动作。
执行模块74,用于对输入的指尖点所在区域内的操作对象,执行输入的指尖点的类型和动作对应的操作。
可见,本发明实现非接触式操作的装置中,将操作与输入的指尖点的类型和动作对应,一方面,这样可以为不同手指的相同动作赋予不同的含义,从而实现语义更丰富的操作,例如食指点击为选中操作界面中的某按钮,中指点击为在操作界面上打开右键菜单等,另一方面,操作者无需实际接触被控设备,而只需在真实空间中做出对应动作,即可实现操作,非常便捷和灵活。
下面给出本发明装置的实施例。
图8为本发明实施例中实现非接触式操作的装置的结构示意图,该装置包括:第一识别模块81、第二识别模块82、第三识别模块83、执行模块84、标记模块85、生成模块86和模板库87。
生成模块86,用于在模板库87中生成模板,一个模板中记录一个标准手形的标准指尖点、标准指尖点的类型、及每个标准指尖点与相邻标准指间点间沿标准手形的手形轮廓的路径长度。具体的,生成模块86中可以包括:第三提取子模块861、第四提取子模块862和计算子模块863。
第三提取子模块861,用于提取标准手形的手形轮廓。第三提取子模块861除了在系统初始化时执行操作外,在操作控制开始后,还可以由执行模块84触发执行操作,这一点在后文中将详细介绍。
第四提取子模块862,用于从标准手形的手形轮廓中提取标准指尖点和标准指间点。该第四提取子模块862可以包括:序列化单元,用于序列化标准手形的手形轮廓;计算单元,用于计算序列化后的标准手形的手形轮廓上的每一点的曲率值;提取执行单元,用于选择曲率值极大值点作为备选集,将所述备选集中的局部极大值点作为标准指尖点和标准指间点。
计算子模块863,用于分别计算每个标准指尖点与相邻的标准指间点之间沿标准手形的手形轮廓的路径长度。该计算子模块863可以包括:获取单元,用于获取标准手形的手形轮廓上的每一点在真实空间中的三维坐标;第一计算单元,用于分别计算每个标准指尖点与相邻标准指间点之间的范围内、标准手形轮廓上每两个相邻的点之间的欧式距离,将计算出的所有欧式距离相加,得到该标准指尖点与相邻的标准指间点间沿标准手形的手形轮廓的路径长度。
第一识别模块81包括:第一提取子模块811和第二提取子模块812。
第一提取子模块811,用于提取操作者输入手形的手形轮廓。
第二提取子模块812,用于从输入手形的手形轮廓中提取输入的指尖点和指间点。具体的,第二提取子模块812可以包括:序列化单元,用于序列化输入手形的手形轮廓;计算单元,用于计算序列化后的输入手形的手形轮廓上的每一点的曲率值;提取执行单元,用于选择曲率值极大值点作为备选集,将所述备选集中的局部极大值点作为输入的指尖点和指间点。
第二识别模块82包括:计算子模块821和查找子模块822。
计算子模块821,用于分别计算每个输入手形中每个输入的指尖点与相邻指间点间沿该输入手形的手形轮廓的路径长度。具体的,计算子模块921可以包括:获取单元,用于获取每个输入手形的手形轮廓上的每一点在真实空间中的三维坐标;计算单元,用于针对每个输入手形,计算每个输入的指尖点与相邻指间点之间的范围内、该输入手形轮廓上相邻的每两个点间的欧式距离,将计算出的所有欧式距离相加,得到该输入的指尖点与相邻指间点间沿该输入手形的手形轮廓的路径长度。
查找子模块822,用于查找每个输入手形要使用的模板,查找出的模板中记录有与该输入手形中各个输入的指尖点在路径长度上相匹配的标准指尖点;针对每个输入手形的每个输入的指尖点,将相匹配的标准指尖点的类型,作为识别出的类型。
考虑一种食指和无名指长度较为接近的情况,针对一个输入的指尖点,所述查找子模块822查找出的模板中存在两个相匹配的标准指尖点时,如果同一输入手形中相邻的输入的指尖点的类型为拇指,所述查找子模块822识别该输入的指尖点为食指;如果同一手形中相邻的输入的指尖点的类型为小指,所述查找子模块822识别该输入的指尖点为无名指;如果同一手形中相邻的输入的指尖点的类型既不是拇指也不是小指,所述查找子模块822识别该手指的指尖点为食指。
第三识别模块83,用于识别输入的指尖点在真实空间中的动作。
标记模块85,用于标记属于同一输入手形的手形轮廓上的输入的指尖点。
执行模块84,用于获取每个输入手形中各输入的指尖点在真实空间中的三维坐标;当操作界面位于真实空间中时,将每个输入手形中各输入的指尖点的三维坐标周围设定范围的空间,作为该输入手形中各输入的指尖点所在区域;当操作界面位于二维显示空间中时,将每个输入手形中各输入的指尖点的三维坐标投影到所述二维显示空间中,将投影点周围设定范围内的平面作为该输入手形中各输入的指尖点所在区域。执行模块84对每个输入手形中输入的指尖点所在区域的操作对象,分别执行该输入手形的输入的指尖点的类型和动作对应的操作。
进一步,在模板库中已存在对应模板的操作者,可以通过既定手形并结合点击动作触发操作界面上用于模板库更新的按钮,此时,执行模块84将触发生成模块86执行操作,具体的,如图8所示,执行模块84触发第三提取模块861执行操作。这样,新的操作者可以输入自己的标准手形,按照前文介绍过的方法生成对应左右手的模板,帮助新的操作者在模板库中建立模板。
本发明实施例中的装置可以按照本发明实施例中的方法执行操作。
本领域技术人员应当理解,以上公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说,这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。