手势是指在人的意识支配下,人手作出的各类动作,如手指弯曲、伸展和手在空间的运动等,可以是收稿日期: 2000 - 05 - 15基金项目: 行业基金项目(院编96311)作者简介: 曾芬芳(1940 - ) ,女,湖南益阳人,华东船舶工业学院教授。执行某项任务,也可以是与人的交流,以表达某种含义或意图。基于手势识别的三维交互输入技术,常用的有基于数据手套的和基于视觉(如摄象机) 的手势识别。人手有20 多个关节,其手势十分复杂,在VR(Virtual Reality) 中的交互过程,需分析手势的形成并识别其含义。如用户以自然方式抓取环境中的物体,同时还可以对用户产生相关的感知反馈,如对具有力反馈的手套,就能使人感知到抓取的物体的重量,对有触觉反馈的手套,能感知到用户所碰到的物体的质感,如毛毯有多粗糙等。所以计算机要能对人手运动的灵活、复杂的手势进行识别是一项艰难而又十分有意义的任务。手势的分类早在40 年代,心理学家Quek[7 ] . ,Pavlovic[8 ]等人从人机接口的角度对手势进行研究,按其功能分为:手的运动无意识的手运动有意识的手运动(手势交流手势表动作表符号(手语)引用手语(如表示数字)情态手势执行任务(如抓握锤) 手势不但由骨胳肌肉驱动,而且还受人的信念、意识的驱使,它涉及到人的思维活动的高级行为。人机交互的研究目的之一是使机器对人类用户更方便,从用户产生手势到系统“感知”手势的过程[9 ]如图1 所示。图1 系统“感知”手势的过程Fig. 1 Process of sensing gesture by the system手的运动,是手势的表现形式。用户的操作意图是用户要完成任务的内容, 即用户心理活动(概念手势) G ,经过运动控制(变换) ,用手势运动H 表达。由经感受设备(变换Thi) 将手的运动H 变换为系统的输入信息I ,所以从G到I的映射过程为:Tgh : G → H , 即H > Tgh ( G)Thi : H → I , 即I > Thi ( H)Tgi : G → I , 即I > Thi ( Tgh ( G) ) > Tgi ( G)其中, Tgh 为人体运动控制传送函数; Thi为输入设备传送函数。手势识别的任务就是从系统输入I 推断、确定用户意图G ,显然是以上映射的逆过程。即G = T- 1gi ( I) ( 1 )H = T- 1hi ( I) ( 2 )G = T- 1gh ( H) ( 3 )其中, T- 1gi , T- 1hi , T- 1gh 是Tgi , Thi , Tgh 的逆变换。所以手势识别可以采用H = T- 1hi ( I) 时输入信息I ,得到手的运动H ,再由G = T- 1gh ( H) 手势的表示推断用户手势的概念意图,也可直接从G = T- 1gi ( I) 求得概念手势G。手势识别分为静态手势和动态手势的识别,目前的研究大都是在线静态手势识别,如Lee 研究的就是静态孤立手势[10 ] 。动态手势识别难度大,一般采用关键帧方法,记录每个手势的始和终状态及手势的运动轨迹,然后用内插算法重建帧,但仍需给予限制,如Davis研究的动态手势识别就规定开始时手必须朝上等。 手势的语法信息是通过手的构形、手的运动变化来传递。为了给用户提供必要的视觉反馈信息, 使其在交互过程中看到自己的手(图2 是用3DSMAX 绘制) ,同时也为了分析交互过程中手和虚拟对象之间的相互作用关系,必须建立手几何模型和运动学模型。 人手是一个多肢节系统, 由27 块骨骼组成, 可看成由4 个相邻手指、一个大拇指和手掌组成, 每个手指由指段和关节组成。因此手是一种由关节相连的结构, 随着关节运动, 手的形状在不断变化。这种变化可以通过指段和关节的状态空间位置的变化来描述[11 ] 。每一个手指( Ⅱ - Ⅴ) 具有四个自由度,其中手指的基部(MP) 有两个自由度,弯曲和旋转,手指的中间关节处(PIP)和末端关节处(DIP) 分别各有一个自由度,主要是弯曲运动。大拇指除了与其他四个手指一样具有四个自由度外, 还有一个外展运动,所以大拇指具有五个自由度(拇指和手掌之间的一节也可不考虑) 。外加手掌的前后左右运动二个自由度。所以手运动总共具有23 个自由度,即状态空间为23 维。从上述的分析可知,除大拇指外每个手指都具有四个自由度,从而可以建立一条链,以协调手指的机构及运动。整个手可以以手掌为基础链接五个手指( Ⅰ - Ⅴ) ,在指段MP 上链接指段PIP ,再链接指段DIP ,每条链可以获取四个参数。从而五个手指以手掌为根节点构成一个树型结构,树中的每一个节点代表一个关节,关节通过指段具有相互关联的运动特性。212 手势的输入手势的输入是实现手势交互的前提。它要求能够有效地跟踪手的运动, 又要方便用户手的运动, 既要求准确确定手的位置、方位、手指弯曲角度,又要求对手的运动限制很少。就目前而言, 手势的输入有基于数据手套的和基于视觉(摄象机) 等两种方式。21211 基于数据手套的手势输入基于数据手套的手势输入[12 ] ,是根据戴在手上的具有位置跟踪器的数据手套利用光纤直接测量手指弯曲和手的位置来实现手势输入的。本文使用5DT 公司生产的不带位置跟踪器的5th Glove 右手数据手套,每个手指中间关节有一个传感器用于测量手指的平均屈伸度,在手腕部位还有一个2 轴倾斜传感器测量手的转动(绕Z 轴旋转) 和倾斜(绕X 轴旋转) 两个角度,以探测手的上下摆动和旋转。该手套共带有七个传感器,因此同一时刻只能读出七个角度值。5th Glove 还提供命令、报告数据、连续数据、模拟鼠标等工作方式,可定义一指、二指和三指( Z 轴) 等手势来控制虚拟手的飞行、视点、运动速度等。5th Glove 数据手套通过串行接口与微机连接在一起,以传送手运动信号,从而控制手动作。它能将用户手的姿势(手势) 转化为计算机可读的数据, 因而使手去抓取或推动虚拟物体。人手在运动过程中会碰撞物体,所以在系统中,虚拟手的交互操作除了实现抓取和释放物体等功能外, 还需实现了碰撞的检测。21212 基于视觉的手势输入基于视觉的手势输入是采用摄象机捕获手势图象,再利用计算机视觉技术对捕获的图象进行分析,提取手势图象特征,从而实现手势的输入。这种方法使用户手的运动受限制较少,同时用户还可以直接看到手的图象。基于视觉的输入所输入的原始数据是手的图象,采用重建三维模型来构建手势图象,调节模型参数如手指弯曲角度的夹角等,以合成手的三维图形。根据手生成的图形和已获得的手图象匹配,所得到的模型参数就构成了手势。1995 年,Lee J intae 和Kunii Tosiyasv l. 研究用立体图像数据自动分析三维手势[4 ] 。它用摄像机拍摄手的运动图像,使用轮廓提取边界特征进行识别的方法,成功地提取27 个交互作用手参数,实现了三维手势的重构。其实早在1981 年, Kroeger 采用两个摄象机实现了一个获取手势的系统,它通过用户的手在与鼠标垫一般大小的“镜象盒”的3D 空间中来完成交互。两个镜子被放在大约与前平面成45 度角的位置上,两个镜子代替单个镜子产生了一个虚拟视点,加上两垂直平面上的两个摄象机共三个视点相交成直角,以提供给用户一个确定的工作空间,在这个空间内允许用户与计算机交互。