一种用于人机交互的电子设备\n技术领域\n[0001] 本发明涉及计算机技术,尤其涉及一种用于人机交互的电子设备。\n背景技术\n[0002] 随着移动计算设备从笔记本电脑到手机、平板电脑的演化,移动计算设备的操控\n方式也经历了从键盘、鼠标到手机按键、手写板,再到触摸屏、虚拟键盘的进化,可以看到,\n移动设备的操控方式是朝着越来越直观、简便,并且符合人的自然习惯的方向进化的。\n[0003] 目前在移动计算设备上广泛使用的基于触摸屏的操控方式,技术上是将一块透明\n的触摸感应屏和显示屏贴合在一起,触摸感应屏实质上是一个定位装置,能够捕捉到屏幕\n上的触摸动作并获取其位置,同时结合时间轴信息,将动作识别其为点触、长触、滑动等动\n作之一。进而将位置和动作信息作为指令传递给移动计算设备,移动计算设备基于该指令\n做出相应的操作反应。由于触摸感应屏与显示屏是叠加在一起的,因此带给使用者“所点即\n所想”的使用感受,相比鼠标、触控板等定位设备需要通过光标反馈位置的输入方式,屏幕\n触控方式带来更好的使用体验。\n[0004] 屏幕触控方式相比键盘加鼠标的方式,更加符合人的直观反应、更容易学习,但是\n屏幕触控方式毕竟只捕捉到了人体手指的动作,在一些需要更多使用者本体信息输入的场\n合,比如运动游戏、模拟训练、复杂操控、远距离操控等,屏幕触控方式就显示出其捕获人体\n信息过于单一的局限性了。从人机交互的角度,更多的使用者信息的获取,将能够传达更丰\n富、更精准的使用者操作意图,因此必然能够带来更便利的操控方法和更好的使用体验。然\n而,目前的人机交互技术中的手势识别处理所采用的算法较为复杂、耗费时间且识别精度\n低。\n发明内容\n[0005] 在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本\n理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关\n键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,\n以此作为稍后论述的更详细描述的前序。\n[0006] 鉴于此,本发明提供了一种用于人机交互的电子设备,以至少解决现有的人机交\n互技术中的手势识别处理所采用的算法较为复杂、耗费时间且识别精度低的问题。\n[0007] 根据本发明的一个方面,提供了一种用于人机交互的电子设备,该电子设备包括:\n3D摄像头接口单元,用于连接外部的3D摄像头,以接收3D摄像头采集的含有深度信息的使\n用者手部的待测图像序列;轮廓检测单元,用于根据图像深度信息和图像颜色信息,在待测\n图像序列的每帧图像中检测出使用者的手部轮廓;特征点序列确定单元,用于针对使用者\n的每只手,利用预设的手部结构模板,在待测图像序列的每帧图像中确定该只手的待测特\n征点序列;动作识别单元,用于针对使用者的每只手,在多个预设特征点序列中确定该只手\n的待测特征点序列的匹配序列,以根据匹配序列确定该只手的动作名称和位置;手势识别\n单元,用于在预设手势表中选择与使用者双手的动作名称和位置相匹配的手势,作为已识\n别手势;指令确定单元,用于根据预设操作指令表,确定与已识别手势对应的操作指令;执\n行单元,用于对与确定的操作指令相关的设备进行与该操作指令对应的操作。\n[0008] 进一步地,特征点序列确定单元包括:模板存储子单元,用于存储预设的手部结构\n模板;模板匹配子单元,用于针对使用者的每只手,利用预设的手部结构模板,在待测图像\n序列的每帧图像的手部轮廓中确定该只手的预定数目个特征点;序列生成子单元,用于针\n对使用者的每只手,利用该只手在待测图像序列的各帧图像中对应的预定数目个特征点,\n获得该只手的待测特征点序列。\n[0009] 进一步地,轮廓检测单元用于:针对待测图像序列 中的每帧图像\n结合颜色信息删除该帧图像 中的噪声点及非肤色区域,利用边缘检测算子E(·)对\n删除噪声点和非肤色区域后所得到的图像 进行边缘检测,得到边缘图像\n边缘图像 即为仅包含使用者手部轮廓的图像。\n[0010] 进一步地,模板匹配子单元包括:定位基点确定模块,其用于针对待测图像序列的\n每帧图像,根据该图像中的轮廓线的曲率找到该轮廓线中的指尖点和指根关节点,以将指\n尖点作为定位基点;缩放基准确定模块,其用于针对定位基点确定模块处理后的每帧图像,\n基于该帧图像中已找到的定位基点,匹配每个单指的指根关节点,得到各单指的长度来作\n为尺度缩放的基准;缩放及形变模块,其用于针对缩放基准确定模块处理后的每帧图像,基\n于已找到的指尖点和指根关节点的位置以及各单指的长度来对相应的手部结构模板进行\n缩放和形变,通过匹配得到每只手的各指关节特征点和手腕中点特征点;其中,模板存储子\n单元存储的手部结构模板包括左手结构模板和右手结构模板,左手结构模板和右手结构模\n板各自包括:各手指的指尖特征点、各指关节特征点、各指根关节特征点、手腕中点特征点\n以及各特征点之间的拓扑关系。\n[0011] 进一步地,动作识别单元包括:分割子单元,用于针对每只手的待测特征点序列,\n根据预定时间窗将该待测特征点序列分割为多个子序列,并获得每个子序列对应的平均位\n置;匹配序列确定子单元,用于针对每只手对应的每个子序列,将该子序列与多个预设特征\n点序列中的每一个分别进行匹配,在多个预设特征点序列中选择与该子序列的匹配程度高\n于预设的匹配阈值、并且最大的预设特征点序列,作为该子序列的匹配序列;关联子单元,\n用于将每个子序列对应的平均位置与该子序列的匹配序列对应的动作名称相关联;动作名\n称确定子单元,用于针对每只手,将该只手对应的各子序列的匹配序列作为该只手对应的\n多个匹配序列,并将该多个匹配序列各自对应的动作名称作为该只手的多个动作名称。\n[0012] 进一步地,手势识别单元包括:手势表存储子单元,用于存储如下映射列表来作为\n预设手势表:该映射列表中的每个映射的左端是一组动作名称对及每个动作名称对的位\n置;该映射列表中的每个映射的右端是一个手势;手势表匹配子单元,用于将预设手势表中\n的每个映射的左端与使用者双手的动作名称和位置进行匹配,其中,动作名称的匹配执行\n严格匹配,而位置则是通过使用者双手各自的平均位置计算得到相对位置信息,进而计算\n该相对位置信息与映射左端的位置之间的相似度来实现的。\n[0013] 进一步地,用于人机交互的电子设备还包括:实时显示单元,用于基于使用者每只\n手的位置在设备的屏幕上显示使用者手部的模拟图形。\n[0014] 进一步地,实时显示单元用于:根据使用者每只手对应的待测特征点序列,通过连\n接骨骼后外延得到该只手的外轮廓图形,作为该只手的模拟图形;通过对使用者双手的相\n对位置进行平移校准和比例缩放,确定使用者的每只手在屏幕中的显示位置;基于使用者\n每只手的模拟图形和显示位置来在屏幕中显示使用者手部的模拟图形。\n[0015] 进一步地,电子设备为以下之一:手机、多媒体播放设备、台式机、笔记本电脑以及\n平板电脑。\n[0016] 上述根据本发明实施例的用于人机交互的电子设备,先识别单手动作、再通过双\n手动作识别手势,进而根据已识别手势来执行对应操作,在人机交互过程中能够准确识别\n使用者的手势,识别精度较高,而且识别速度较快。\n[0017] 此外,由于本发明实施例能够通过外接深度摄像头来获取使用者的人体动作作为\n操作移动计算设备的输入操控指令,因此能够令使用者使用更加直观、便利的自然动作实\n现对移动计算设备的非接触式操控,为移动计算设备在诸如运动游戏、模拟训练、复杂操\n控、远距离操控等领域中的应用提供更加便捷精准的输入、控制。\n[0018] 本发明的上述用于人机交互的电子设备采用层次化设计算法,算法复杂度低,便\n于实现。\n[0019] 此外,应用本发明的上述用于人机交互的电子设备,当需要改变(例如修改、增加\n或减少等)对动作和/或手势的定义时,可以仅通过调整模板(即,通过修改预设特征点序列\n对应的动作名称来改变动作的定义,通过增加或减少预设特征点序列及其对应动作名称来\n增、减动作)以及预设手势表(即,通过修改预设手势表中手势对应的多个动作来改变手势\n的定义,通过增加或减少预设手势表中的手势及其对应动作来增、减手势),而不需改变算\n法或者重新训练分类器,大大提高了算法的适应性。\n[0020] 此外,本发明的上述用于人机交互的电子设备的实时性强,能够适合即时交互需\n求的场合。\n[0021] 通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优\n点将更加明显。\n附图说明\n[0022] 本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,其中在所\n有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的\n详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本\n发明的优选实施例和解释本发明的原理和优点。在附图中:\n[0023] 图1是示出本发明的用于人机交互的电子设备的一个示例的结构示意图;\n[0024] 图2是示出图1中的特征点序列确定单元130的一个示例的结构示意图;\n[0025] 图3是示出图2中的模板匹配子单元220的一个示例的结构示意图;\n[0026] 图4是示出图1中的动作识别单元140的一个示例的结构示意图;\n[0027] 图5是示出图1中的手势确定单元150的一个示例的结构示意图;\n[0028] 图6是示出本发明的用于人机交互的电子设备的另一个示例的结构示意图。\n[0029] 本领域技术人员应当理解,附图中的元件仅仅是为了简单和清楚起见而示出的,\n而且不一定是按比例绘制的。例如,附图中某些元件的尺寸可能相对于其他元件放大了,以\n便有助于提高对本发明实施例的理解。\n具体实施方式\n[0030] 在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,\n在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施\n例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符\n合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有\n所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开\n内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。\n[0031] 在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中\n仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明\n关系不大的其他细节。\n[0032] 本发明的实施例提供了一种用于人机交互的电子设备,该电子设备包括:3D摄像\n头接口单元,用于连接外部的3D摄像头,以接收3D摄像头采集的含有深度信息的使用者手\n部的待测图像序列;轮廓检测单元,用于根据图像深度信息和图像颜色信息,在待测图像序\n列的每帧图像中检测出使用者的手部轮廓;特征点序列确定单元,用于针对使用者的每只\n手,利用预设的手部结构模板,在待测图像序列的每帧图像中确定该只手的待测特征点序\n列;动作识别单元,用于针对使用者的每只手,在多个预设特征点序列中确定该只手的待测\n特征点序列的匹配序列,以根据匹配序列确定该只手的动作名称和位置;手势识别单元,用\n于在预设手势表中选择与使用者双手的动作名称和位置相匹配的手势,作为已识别手势;\n指令确定单元,用于根据预设操作指令表,确定与已识别手势对应的操作指令;执行单元,\n用于对与确定的操作指令相关的设备进行与该操作指令对应的操作。上述用于人机交互的\n电子设备例如可以是以下设备中的任一种:手机、多媒体播放设备、台式机、笔记本电脑以\n及平板电脑。\n[0033] 图1示出了本发明的用于人机交互的电子设备的一个示例的结构示意图。如图1所\n示,用于人机交互的电子设备100包括3D摄像头接口单元110、轮廓检测单元120、特征点序\n列确定单元130、动作识别单元140、手势识别单元150、指令确定单元160以及执行单元170。\n[0034] 3D摄像头接口单元110用于连接外部的3D摄像头,以接收3D摄像头采集的含有深\n度信息的使用者手部的待测图像序列。其中,3D摄像单元110例如可以包括两个3D摄像头。\n3D摄像头为包括可见光图像传感器和红外图像传感器的深度摄像头,可见光图像传感器用\n于获得可见光图像序列 而红外图像传感器的深度摄像头则用于获得红外图像序\n列 根据一种实现方式,3D摄像头接口单元110可以包括2个接口,用于连接2个3D\n摄像头。此外,3D摄像头接口单元110的接口例如可以采用USB接口,或者其他接口。\n[0035] 轮廓检测单元120用于根据图像深度信息和图像颜色信息,在待测图像序列的每\n帧图像中检测出使用者的手部轮廓。其中,检测出的手部轮廓可能是双手轮廓,也可能是单\n手轮廓。\n[0036] 特征点序列确定单元130用于针对使用者的每只手,利用预设的手部结构模板,在\n待测图像序列的每帧图像中确定该只手的待测特征点序列\n[0037] 动作识别单元140用于针对使用者的每只手,在多个预设特征点序列中确定该只\n手的待测特征点序列的匹配序列,以根据匹配序列确定该只手的动作名称和位置。\n[0038] 手势确定单元150用于在预设手势表中选择与使用者双手的动作名称和位置相匹\n配的手势,作为已识别手势。\n[0039] 指令确定单元160用于根据预设操作指令表,确定与已识别手势对应的操作指令。\n[0040] 执行单元170用于对与确定的操作指令相关的设备进行与该操作指令对应的操\n作。由此,将确定的操作指令发送到相关设备,能够实现对诸如移动计算设备的相关设备的\n拟人化、自然化、非接触的操作与控制。\n[0041] 根据一种实现方式,3D摄像头接口单元110外接3D摄像头之后,可以通过3D摄像头\n捕获预定成像区域内的使用者手部的图像,(例如可以利用深度摄像头上的可见光图像传感\n器和红外图像传感器)获得可见光图像序列 和红外图像序列 为\n可见光图像序列第i帧图像坐标(x,y)处的像素值,而 为红外图像序列第i帧图像坐\n标(x,y)处的像素值,根据如下公式可以得到抽取使用者双手信息的图像序列:\n[0042]\n[0043] 其中,α、β、λ为预设参数阈值,这些预设参数阈值可以根据经验值来设定,也可以\n通过试验的方法来确定(例如通过实际使用特定型号的深度摄像头采集到的样本图像训练\n得到),这里不再赘述。 为获取的含有深度信息的使用者双手的图像序列,作为上\n述待测图像序列。此外,i=1,2,…,M,M为待测图像序列中所包括的图像帧数。\n[0044] 需要说明的是,根据使用者手势所使用的手数量的不同(单只或双只),在预定成\n像区域内所捕获的图像可能是包含使用者双手的图像,也可能是仅包含使用者单只手的图\n像。另外,获取的待测图像序列可以是在一个时间段内获得的,该时间段可以预先根据经验\n值设置,例如可为10秒。\n[0045] 根据一种实现方式,轮廓检测单元120可以用于:针对待测图像序列 中的\n每帧图像 结合颜色信息删除该帧图像 中的噪声点及非肤色区域,利用边\n缘检测算子E(·)对删除噪声点和非肤色区域后所得到的图像 进行边缘检测,从而\n得到边缘图像\n[0046]\n[0047] 边缘图像 即为仅包含使用者手部轮廓的图像。\n[0048] 其中,在“结合颜色信息删除该帧图像中的噪声点及非肤色区域”的处理过程中,\n可以利用现有的去噪方法来删除图像中的噪声点,并可以通过计算图像 的均值来得到肤\n色区域,则肤色区域之外的区域即为非肤色区域,即可实现对非肤色区域的删除。例如,得\n到图像 的均值之后,在该均值上下浮动一个范围,得到包含该均值的一个颜色范围,当图\n像中某点的颜色值落在这个颜色范围之内,则将该点确定是肤色点,否则认为不是肤色点;\n所有肤色点构成肤色区域,其余为非肤色区域。\n[0049] 由此,通过轮廓检测单元120的处理,能够快速检测出使用者的手部轮廓,提高了\n整个处理的速度和效率。\n[0050] 根据一种实现方式,特征点序列确定单元130可以包括如图2所示的模板存储子单\n元210、模板匹配子单元220和序列生成子单元230。\n[0051] 其中,模板存储子单元210可以用于存储预设的手部结构模板。\n[0052] 根据一种实现方式,手部结构模板可以包括左手结构模板和右手结构模板,左手\n结构模板和右手结构模板各自包括预定数目个特征点以及各特征点之间的拓扑关系。\n[0053] 在一个例子中,左手结构模板和右手结构模板可以各自包括如下20(作为预定数\n目的示例,但预定数目并不限于20,也可为19、21等数值)个特征点:各手指的指尖特征点(5\n个)、各指关节特征点(9个)、各指根关节特征点(5个)、手腕中点特征点(1个)。\n[0054] 如图2所示,模板匹配子单元220可以针对使用者的每只手,利用上述预设的手部\n结构模板,分别将待测图像序列的每帧图像中的手部轮廓与手部结构模板(左右结构模板\n和右手结构模板)进行匹配、对齐,得到该帧图像手部轮廓中的预定数目个(例如20个)特征\n点。\n[0055] 然后,序列生成子单元230可以针对使用者的每只手,利用该只手在待测图像序列\n的各帧图像中对应的预定数目个特征点(即特征点集),获得该只手的待测特征点序列。\n[0056] 这样,通过手部结构模板与之前获得的每个手部轮廓(即待测图像序列的每帧图\n像中的手部轮廓)进行匹配等处理,能够快速、准确地获得每个手部轮廓中的预定数目个特\n征点。由此,能够使得后续处理利用这些轮廓中的所述预定数目个特征点来进一步实现手\n势识别,相比于现有技术,提高了整个人机交互处理的速度和准确度。\n[0057] 在现有技术中,当根据不同应用场景需要改变(例如修改、增加或减少等)对动作\n的定义时,需要修改算法以及重新训练分类器;在本发明中,可以仅通过调整动作模板(即\n预设特征点序列)来实现对动作定义的改变,大大提高了手势识别技术的适应性。\n[0058] 在一个例子中,模板匹配子单元220可以包括如图3所示的定位基点确定模块310、\n缩放基准确定模块320和缩放及形变模块330。\n[0059] 根据人类双手的生理结构特征,可以通过定位基点确定模块310、缩放基准确定模\n块320和缩放及形变模块330对每只手提取20(作为预定数目的示例)个特征点。\n[0060] 针对待测图像序列的每帧图像 执行以下处理:首先,通过定位基点确定模\n块310根据该图像 中的轮廓线的曲率找到该轮廓线中的指尖点和指根关节点;接\n着,缩放基准确定模块320基于定位基点确定模块310已找到的该帧图像 的轮廓线\n中的定位基点,匹配每个单指的指根关节点,得到各单指的长度作为尺度缩放的基准;最\n后,缩放及形变模块330基于已找到的指尖点和指根关节点的位置以及得到的各单指的长\n度两方面的参数对相应的手部结构模板进行缩放和形变,通过匹配得到每只手其余的10个\n特征点,即每只手的各指关节特征点和手腕中点特征点。\n[0061] 例如,在找轮廓线 中的指尖点和指根关节点的过程中,可以将其中曲率最\n大的凸点作为指尖点,将曲率最大的凹点作为指缝最低点,并将每个指尖点到该指尖点相\n邻的指缝最低点之间的距离定义为该指尖点对应的单位长度。对每两个相邻的指缝最低\n点,将此二点的中点再往手掌方向延伸三分之一单位长度(此时的单位长度为此二点之间\n的指尖点对应的单位长度)的点,定义为该指尖点对应的指根关节点,由此可以得到每只手\n的中间3个指根关节点。除此之外,对于每只手来说,可以通过在后续缩放和形变的过程中\n获得该只手的首尾两个指根关节点;或者,也可以将该只手的两个(例如任意选两个)相邻\n的指缝最低点之间的距离作为手指参考宽度,然后将该只手的首尾两个指缝最低点各沿切\n线方向、向外延伸半个手指参考宽度,得到的点分别作为该只手的首尾两个指根关节点。\n[0062] 需要说明的是,如果对于单只手所找到的凸点多于5个,可以在将其与手部结构模\n板进行匹配对齐的过程中将多余的凸点去除。\n[0063] 由此,通过定位基点确定模块310、缩放基准确定模块320和缩放及形变模块330,\n可以匹配得到每一帧图像对应的左手的20个特征点Pl={pl1,pl2,…,pl20}和右手的20个\n特征点Pr={pr1,pr2,…,pr20}。需要说明的是,若使用者手势仅包含单只手,则通过以上匹\n配所得到的是该单只手在每帧图像中的20个特征点(称为特征点集),即Pl={pl1,pl2,…,\npl20}或Pr={pr1,pr2,…,pr20}。其中,pl1,pl2,…,pl20分别为左手20个特征点的位置,而\npr1,pr2,…,pr20分别为右手20个特征点的位置。\n[0064] 若使用者手势包含双手,则通过以上处理可以得到左手的待测特征点序列{Pli,i\n=1,2,...,M}和右手的待测特征点序列{Pri,i=1,2,...,M}。其中,Pli为使用者左手在待\n测图像序列的第i帧图像中对应的20(作为预定数目的示例)个特征点,而Pri为使用者右手\n在待测图像序列的第i帧图像中对应的20(作为预定数目的示例)个特征点。\n[0065] 若使用者手势仅包含单只手,则捕获的待测图像序列中的每帧图像均是仅包含该\n单只手的图像,从而通过以上处理之后能够得到该单只手的待测特征点序列,即{Pli,i=\n1,2,...,M}或{Pri,i=1,2,...,M}。\n[0066] 根据一种实现方式,动作识别单元140可以包括如图4所示的分割子单元410、匹配\n序列确定子单元420、关联子单元430和动作名称确定子单元440。\n[0067] 如图4所示,分割子单元410可以针对每只手的待测特征点序列,根据预定时间窗\n将该待测特征点序列分割为多个子序列,并获得每个子序列对应的平均位置。其中,每个子\n序列对应的平均位置可以选取指定特征点(如手腕中点,或者也可为其他特征点)在该子序\n列中的平均位置。其中,预定时间窗约为一个单手基本动作(即单手的握、抓等)从开始到结\n束的时间,可根据经验值来设定,或可以通过试验的方法来确定,例如可以为2.5秒。\n[0068] 在一个例子中,假设待测特征点序列是在10秒内采集的,分割子单元410利用2.5\n秒的时间窗可以将左手的待测特征点序列以及右手的待测特征点序列分别分割成4个子序\n列。以左手的待测特征点序列{Pli,i=1,2,...,M}为例(右手的待测特征点序列{Pri,i=1,\n2,...,M}与其类似,这里不再详述),假设每秒采集10帧图像,则待测特征点序列对应的是\n100帧图像,即M=100,也就是说,{Pli,i=1,2,...,M}包括100组特征点集Pl1、Pl2、…、\nPl100。这样,通过上述2.5秒的时间窗,可以将{Pli,i=1,2,...,M}分割为{Pli,i=1,2,...,\n25}、{Pli,i=25,26,...,50}、{Pli,i=51,52,...,75}和{Pli,i=76,77,...,100}4个子序\n列,且每个子序列各对应25帧图像,也即,每个子序列各包括25组特征点集。指定特征点选\n取手腕中点,以子序列{Pli,i=1,2,...,25}为例(其余三个子序列与其处理相似,这里不\n再详述),手腕中点在{Pli,i=1,2,...,25}对应的25组特征点集中的位置分别为位置p1、\np2、…、p25,于是手腕中点在子序列{Pli,i=1,2,...,25}中的平均位置为(p1+p2+…+p25)/\n25,作为子序列{Pli,i=1,2,...,25}对应的平均位置。\n[0069] 然后,匹配序列确定子单元420可以针对每只手对应的每个子序列,将该子序列与\n多个预设特征点序列中的每一个分别进行匹配,在多个预设特征点序列中选择与该子序列\n的匹配程度高于预设的匹配阈值(该匹配阈值可以根据经验值来设定,或者也可以通过试\n验的方法来确定)、并且最大的那个预设特征点序列,作为该子序列的匹配序列。其中,匹配\n序列确定子单元420可以计算子序列与预设特征点序列之间的相似度,来作为二者之间的\n匹配程度。\n[0070] 其中,多个预设特征点序列可以预先设置在一个手部动作名列表中,该手部动作\n名列表包括基本的手部动作,例如:挥、推、拉、张、合、转等,每个动作都有唯一的名称标识\n以及用归一化的用手部特征点序列(即预设特征点序列)表示的模板。需要说明的是,对于\n使用者的双手来说,每只手都具有一个上述的手部动作名列表。也就是说,对于左手来说,\n左手的手部动作名列表(简称左手动作名列表)中包括的每个动作除了分别具有各自的名\n称之外,还具有一个左手模板(即左手的一个预设特征点序列);对于右手来说,右手的手部\n动作名列表(简称右手动作名列表)中包括的每个动作除了分别具有各自的名称之外,还具\n有一个右手模板(即右手的一个预设特征点序列)。\n[0071] 例如,单只手的多个预设特征点序列分别记为序列A1、序列A2、…、序列AH,其中,H\n为该单只手的上述多个预设特征点序列所包含的序列数,则在该单只手的手部动作名列表\n中:动作1的名称标识为“挥”且对应的模板(即预设特征点序列)为序列A1;动作2的名称标\n识为“推”且对应的模板为序列A1;…;动作H的名称标识为“转”且对应的模板为序列A1。\n[0072] 需要说明的是,对于每个子序列,并非一定能够在多个预设特征点序列中找到该\n子序列对应的匹配序列。当对于单只手的某个子序列并未找到其匹配序列时,则将该子序\n列的匹配序列记为“空”,但该子序列的平均位置可以不为“空”。根据一种实现方式,若子序\n列的匹配序列为“空”,则将该子序列的平均位置设为“空”;根据另一种实现方式,若子序列\n的匹配序列为“空”,该子序列的平均位置为该子序列中指定特征点的实际平均位置;根据\n其他一种实现方式,若子序列的匹配序列为“空”,将该子序列的平均位置设为“+∞”。\n[0073] 此外,根据一种实现方式,若子序列中不存在指定特征点(也即不存在该指定特征\n点的实际平均位置),可以将该子序列的平均位置设为“+∞”。\n[0074] 然后,如图4所示,关联子单元430可以将每个子序列对应的平均位置与该子序列\n的匹配序列对应的动作名称相关联。\n[0075] 这样,动作名称确定子单元440可以针对每只手,将该只手对应的各子序列的匹配\n序列作为该只手对应的多个匹配序列,并将该多个匹配序列各自对应的动作名称(按时间\n顺序排序后)作为该只手的多个动作名称。\n[0076] 例如,假设对于左手的待测特征点序列的多个子序列为{Pli,i=1,2,...,25}、\n{Pli,i=25,26,...,50}、{Pli,i=51,52,...,75}和{Pli,i=76,77,...,100},分别在左手\n的多个预设特征点序列中找到{Pli,i=1,2,...,25}、{Pli,i=25,26,...,50}、{Pli,i=\n51,52,...,75}的匹配序列依次为Pl1'、Pl2'、Pl3',而未找到{Pli,i=76,77,...,100}的匹\n配序列。假设Pl1'、Pl2'、Pl3'在左手动作名列表中对应的动作名称依次分别为“挥”、“推”、“拉”,{Pli,i=1,2,...,25}、{Pli,i=25,26,...,50}、{Pli,i=51,52,...,75}和{Pli,i=\n76,77,...,100}各自的平均位置分别为pm1、pm2、pm3和pm4,则由此得到的左手的动作名称\n和位置包括:“挥”(位置pm1);“推”(位置pm2);“拉”(位置pm3);“空”(位置“pm4”)。需要注意到是,在不同实施例中,pm4可能是真实位置值,也可能是“空”或“+∞”等。\n[0077] 由此,通过分割子单元410、匹配序列确定子单元420、关联子单元430和动作名称\n确定子单元440的处理,能够得到使用者每只手对应的多个动作名称(作为该只手的动作名\n称,也就是说,该只手的动作名称),且每个动作名称分别关联有一个平均位置(作为该只手\n的位置,“该只手的位置”中包括一个或多个平均位置,数量与动作名称的数量相同)。相比\n于单单识别单个动作作为手势的识别技术来说,采用如图4所示的组成的处理所识别的双\n手各自的多个动作和位置,提供了更灵活的组合方式,一方面使得手势的识别精度更高,另\n一方面使得能够识别的手势更多样、丰富。\n[0078] 此外,根据一种实现方式,可以通过如图5所示的结构来实现手势确定单元150的\n处理。如图5所示,手势确定单元150可以包括手势表存储子单元510和手势表匹配子单元\n520。\n[0079] 如图5所示,手势确定单元150可以将预定义的一个从两只手动作和位置两个要素\n到手势的映射列表存储为预设手势表:每个映射的左端是一组动作名称对及每个动作名称\n对的位置;每个映射的右端是一个手势HandSignal。\n[0080] 其中,“一组动作名称对”包括多个动作名称对,每个动作名称对包括左手动作名\n称ActNameleft和右手动作名称ActNameright,每个动作名称对的位置包括两只手的相对位\n置。\n[0081] 例如,在预设手势表中,映射一为{(“拉”,“空”)、(“拉”,“拉”)、(“空”,“合”)、(“空”,“空”)}(作为要素一)、{(x1,y1),(x2,y2),(x3,y3),(x4,y4)}(相对位置,作为要素二)到手势“开关”的映射;映射二为{(“拉”,“拉”)、(“张”,“张”)、(“空”,“空”)、(“空”,“空”)}、{(x5,y5),(x6,y6),(x7,y7),(x8,y8)}到手势“爆炸”的映射;等等。其中,每个动作对(如(“拉”,“空”))中左边的动作名称对应于左手动作,而右边的动作名称对应于右手动作。\n[0082] 以映射一为例,(x1,y1)表示的是左手第一个动作“拉”与右手第一个动作“空”之间\n的相对位置(即动作对(“拉”,“空”)中左手动作和右手动作对应的两只手的相对位置);\n(x2,y2)表示的是左手第二个动作“拉”与右手第二个动作“拉”之间的相对位置;(x3,y3)表\n示的是左手第三个动作“空”与右手第三个动作“合”之间的相对位置;而(x4,y4)表示的是左\n手第四个动作“空”与右手第四个动作“空”之间的相对位置。其他映射中的表述意义与此类\n似,不再赘述。\n[0083] 这样,手势表匹配子单元520可以将预设手势表中的每个映射的左端与使用者双\n手的动作名称和位置进行匹配,以将与使用者双手动作名称和位置匹配的手势作为已识别\n手势。\n[0084] 其中,动作名称的匹配执行严格匹配,也即,在两个动作名称之间一字不差的情况\n下判定这两个动作名称是匹配的;而位置则是通过使用者双手各自的平均位置计算得到相\n对位置信息,进而计算该相对位置信息与映射左端的位置之间的相似度来实现的(如可以\n设定一个相似度阈值,当计算的相似度大于或等于该相似度阈值时判定位置是匹配的)。\n[0085] 例如,假设通过动作识别单元140得到使用者双手各自的动作名称为{(“拉”,\n“拉”)、(“张”,“张”)、(“空”,“空”)、(“空”,“空”)},位置为{(x11,y12)、(x21,y22)、(x31,y32)、(x41,y42)(对应左手);(x’11,y’12)、(x’21,y’22)、(x’31,y’32)、(x’41,y’42)(对应左手)}。\n[0086] 这样,手势表匹配子单元520将使用者双手的动作名称与预设手势表中的每个映\n射的左端进行匹配。\n[0087] 当与映射一进行匹配时,可以得出,使用者双手的动作名称与映射一的左端的动\n作名称不匹配,因此忽略映射一,继续匹配映射二。\n[0088] 当与映射二进行匹配时,可以得出,使用者双手的动作名称与映射二的左端的动\n作名称完全匹配,然后再将使用者双手的位置与映射二的左端的相对位置进行匹配。\n[0089] 在将使用者双手的位置与映射二的左端的相对位置进行匹配的过程中,首先计算\n使用者双手的相对位置如下:{(x’11-x11,y’12-y12)、(x’21-x21,y’22-y22)、(x’31-x31,y’32-y32)、(x’41-x41,y’42-y42)(对应左手)}。然后,将计算得到的使用者双手的上述相对位置与映射二左端的相对位置{(x5,y5),(x6,y6),(x7,y7),(x8,y8)}进行匹配,也即,计算{(x’11-x11,y’12-y12)、(x’21-x21,y’22-y22)、(x’31-x31,y’32-y32)、(x’41-x41,y’42-y42)(对应左手)}与{(x5,y5),(x6,y6),(x7,y7),(x8,y8)}之间的相似度,假设计算得到的相似度为95%。在该例子中,设相似度阈值为80%,于是判定计算得到的使用者双手的相对位置与映射二左端的\n相对位置是匹配的。由此,在该例子中,人机交互的结果为“爆炸”。\n[0090] 由此,利用手势表匹配子单元520,通过双手各自的多个动作和位置与预定手势表\n之间的匹配来确定使用者的手势,使得识别的精度较高。\n[0091] 根据一种实现方式,指令确定单元160可以建立一个手势名称和操作指令之间的\n一个映射关系表,作为上述预设操作指令表。该预设操作指令表包括多个映射,每个映射的\n左边为一个预设手势的名称,而右边为与该预设手势对应的操作指令(比如用于移动计算\n设备图形界面操作的基本操作指令,例如焦点移动、点击、双击、点击拖动、放大、缩小、旋\n转、长触等)。由此,通过查表操作即可获得与已识别手势HandSignal对应的那个操作指令\nOptCom。\n[0092] 此外,如图6所示,在根据本发明实施例的用于人机交互的电子设备的另一个示例\n中,用于人机交互的电子设备600除了可以包括3D摄像头接口单元610、轮廓检测单元620、\n特征点序列确定单元630、动作识别单元640、手势识别单元650、指令确定单元660以及执行\n单元670之外,还可以包括实时显示单元680。其中,图6所示的3D摄像头接口单元610、轮廓\n检测单元620、特征点序列确定单元630、动作识别单元640、手势识别单元650、指令确定单\n元660以及执行单元670可以分别具有与图1所示的用于人机交互的电子设备100中对应单\n元相同的结构和功能,并能够达到相类似的效果,这里不再赘述。\n[0093] 根据一种实现方式,实时显示单元680可以基于使用者每只手的位置在电子设备\n的屏幕上显示使用者手部的模拟图形。\n[0094] 例如,实时显示单元680可用于:根据使用者每只手在待测图像序列的每帧图像中\n对应的待测特征点序列(例如每帧图像中每只手的20个特征点),通过连接骨骼后外延得到\n该只手的外轮廓图形,作为该只手的模拟图形;通过对使用者双手的相对位置进行平移校\n准和比例缩放,确定使用者的每只手在所述屏幕中的显示位置;基于使用者每只手的模拟\n图形和显示位置来在屏幕中显示使用者手部的模拟图形。\n[0095] 由此,可以通过在移动计算设备的屏幕上显示半透明的手部图形来给用户提供视\n觉反馈,并帮助用户调整手部位置和操作。需要说明的是,在执行“通过对使用者双手的相\n对位置进行平移校准和比例缩放”的处理时,如果已识别手势中只包含使用者的单只手,则\n不存在相对位置(或者相对位置被记为无穷大),此时,可以在一个指定的初始位置显示对\n应的单只手。此外,在执行“基于使用者每只手的模拟图形和显示位置来在屏幕中显示使用\n者手部的模拟图形”的处理时,若已识别手势中包括双手,则显示双手的模拟图形;若已识\n别手势仅包含单只手,则仅显示该只手的模拟图形。\n[0096] 例如,在实际应用中,可以将将本发明的上述技术应用于平板电脑或笔记本电脑,\n实现非接触式的手势操作。在该应用场景中,深度摄像头(即3D摄像头)通过USB接口(作为\n3D摄像头接口单元110的示例)安装于平板电脑或笔记本电脑屏幕上方,正对使用者,使用\n者抬起双手置于屏幕前,做出相关手势操作,即可:1、替代实体鼠标实现鼠标光标的移动及\n点击操作;2、在游戏或相关软件操作中通过手势实现场景导航,以及对象的缩放、旋转、平\n移等操作。\n[0097] 上述根据本发明实施例的用于人机交互的电子设备,先识别单手动作、再通过双\n手动作识别手势,进而根据已识别手势来执行对应操作,在人机交互过程中能够准确识别\n使用者的手势,识别精度较高,而且识别速度较快。\n[0098] 此外,由于本发明实施例通过外接深度摄像头获取使用者的人体动作作为操作移\n动计算设备的输入操控指令,因此能够令使用者使用更加直观、便利的自然动作实现对移\n动计算设备的非接触式操控,为移动计算设备在诸如运动游戏、模拟训练、复杂操控、远距\n离操控等领域中的应用提供更加便捷精准的输入、控制。\n[0099] 尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域\n内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,\n本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限\n定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本\n技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本\n发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。