移动机器人 | 手势识别
移动机器人 | 手势识别
手势识别在移动机器人交互中具有重要意义,介绍了手势识别及交互的基本流程。
手势是人与人之间非语言交流的重要方式,也是人与移动机器人交互的重要方式之一。手势是指手指、手掌或者手掌连同手臂产生的各种动作或姿势。本章主要讨论基于视觉的手势识别。
手势灵活、多变,很容易被人们控制,对于行动不便的残障人士和空巢老人、自闭症儿童、聋哑人来说,非常友好和便利;并且在高空作业等危险情况下,可使用手势远程控制提高安全性。在手势识别方面有一款名为“凝眸一号”的AI手语识别机器人,它是上海追求人工智能科技有限公司团队与上海交通大学、上海灵至科技有限公司联合开发的。“凝眸一号”在2019年世界人工智能大会上亮相,当时被称为世界首台能看懂手语并能实时将手语翻译成语音和文字的AI机器人,如图8-10所示。
■ 图8-10“凝眸一号”的AI手语识别机器人
目前,它支持多个版本的手语(上海手语及全国通用手语),识别率达到92%以上。这款机器人具有三大特点:一是手语识别不受周边环境因素(如背景、灯光)的干扰;二是做手语识别时不受肤色与服装的干扰;三是在断网和断电的情况下仍能继续工作。
基于视觉的手势交互使用手势识别方法实现人与机器人交互的整体流程框图如图8-11所示。
■ 图8-11手势识别模块
(1) 采集数据。通过一台或多台摄像头采集人体手部视频。
(2) 手部检测与分割。检测输入视频中是否有手,若有手,则检测手的具体位置,并将手部分割出来。
(3) 特征提取。根据所选手势模型对分割出的手势图像进行特征提取。
(4) 手势识别。选择适当的分类器对手势进行识别。
(5) 输出手势类型控制机器人运动。将识别结果发送给机器人控制系统,从而控制机器人实现特定运动。
在手势识别中,根据手势的时变性可将手势分为静态手势和动态手势。静态手势是指在某个时间点上人手做出的特殊形状或姿势,即仅通过手的形状或姿势表明操作者的意图。静态手势的识别一般基于手势图像属性,如结构、边界、图像特征向量、区域直方图特征等,即只需要识别一幅图像中的相关内容。动态手势则关注某个时间段内人的手势序列,由此时间段范围内的一系列静态手势构成,其特征是增加了时间信息和动作特征,需要使用随时间变化的空间特征表述,对于动态手势识别,需要识别整个手势序列,其模型主要建立在图像的变化或运动轨迹的基础上。
01、手部检测与分割
手部检测与分割是手势识别的基础。手部检测指检测图像数据是否有手,并找出手部在图像中的具体位置。常见的手部检测方法大致分为以下几类:基于形状信息特征的方法、基于肤色信息的方法和基于运动信息的方法。
基于形状信息特征的方法的思想是,由于人的各种各样的手部形状和其他物体形状存在一定的差异,因此根据手的形状特征进行手部检测是一个有效的方法。基于形状信息特征的手部检测方法充分考虑了手部的多种几何特征,如手的轮廓特征、手指连接模式、手指和手掌的长度、宽度以及长宽比等。该方法通常首先会融合肤色信息或运动信息进行肤色分割或运动目标分割等一些预处理,以便后期能够提取到较精确的手部轮廓。
基于肤色信息的方法的思想是,人体肤色是人手表面与外界背景相比非常显著的一个特征,人体肤色特征具有天然的平移不变性及旋转不变性,对平移、旋转等具有非常强的鲁棒性,并且对拍摄视角、人体姿势等的依赖性较小。因此,基于肤色信息的方法由于计算量较小,运算速度较快,在手势检测阶段被广泛应用。然而,不同种族、人种,甚至个体间的肤色会有或大或小的差异,光照条件的变化会影响肤色,以及人体其他区域存在肤色相同的问题,都会对其效果产生干扰。
基于运动信息的方法的思想是,运动信息可将运动中的手部与背景进行分割,作为检测手部的一种方法,但使用运动信息检测手部时对手势者或背景常做一些假设,如手势者的动作不能太快,手势者相对背景静止或运动量很小、场景光照条件变化不大等,常用的基于手部运动信息的检测方法和人体运动检测方法类似,有光流法、帧间差分法和背景差分法。
手部分割指将手部区域从图像中分割出来,去除背景的干扰,便于后续操作,有利于减少计算量。手部检测和手部分割一般同时进行。传统的基于视觉的手部分割方法主要有基于肤色的分割方法、基于轮廓的分割方法、基于运动的分割方法等。
基于肤色模型法,即将原始图像中与手部肤色相近的像素点所在的区域分割出来,这种方法不受尺度和角度等其他因素的影响,简单高效,是手势识别中使用较多的手势分割方法。但此方法的缺点是容易受光照变化的影响,因此,研究者们在传统肤色分割方法的基础上采取了很多改进方法,主要有三种:在分割前对图像颜色进行校正;提出新的颜色空间;结合运动差分、轮廓、几何特征等其他分割方法。
基于轮廓的分割指利用手的轮廓将手部分割出来,其存在两个棘手问题:一是由于手部旋转或弯曲等因素使得初始轮廓的获取较难;二是由于手势的形状本身存在深度凹陷区域,而轮廓对此类区域往往无法收敛,改进模型所增加的迭代次数和计算量的代价使得实时性能下降。
基于运动的分割方法主要分为帧间差分法和背景差分法。众多实验发现,在运动中产生的光影变化,以及背景的动态变化都会对分割结果产生影响。
02、手势模型
手势模型可分为两类:表观手势模型和三维手势模型。
表观手势模型通过手部外在形态进行建模,如图8-12(a)所示。基于表观的手势模型建立在手(臂)图像的表观之上,它通过分析手势在图像(序列)里的表观特征给手势建模。
基于表观的手势模型分为四类:第一类基于表观的手势模型使用二维灰度图像本身建立手势模型,例如,把人手的完整图像序列作为手势模板。第二类基于表观的手势模型建立在手(臂)的可变形二维模板的基础上,可变形二维模板是物体轮廓上某些点的集合,一般把它用作插值节点近似物体轮廓,模板由平均点集合、点可变性参数,以及所谓的外部变形构成;平均点集合描述了某一组形状的“平均”形状,点可变性参数描述了允许的形变,通常称这两组参数为内部参数;外部变形或者外部参数描述了一个可变形模板的全局运动,如旋转、平移等。第三类基于表观的手势模型建立在图像属性的基础上,把从图像属性抽取的参数统称为图像属性参数,包括轮廓、边界、图像矩、图像特征向量以及区域直方图特征等。第四类基于表观的手势模型通过计算图像的运动参数,抽取手势模型参数,这类表观模型主要用在动态手势识别里。
基于三维模型的手势建模方法考虑了手势产生的中间媒体(手和臂),一般遵循两步建模过程:首先给手和臂的运动以及姿态建模,然后从运动和姿态模型参数估计手势模型参数。三维手势模型包含三维纹理模型、三维骨架模型和三维几何模型。三维纹理模型包含手部皮肤表面和骨架的信息,如图8-12(b)所示。三维骨架模型包含基本骨架信息,如图 8-12(c)所示,但包含的皮肤信息相对较少。三维几何模型使用几何形状(如球体、圆柱体等)近似手指、手掌等部位,模型较简单。
■ 图8-12表观手势模型
表观手势模型的建模方法简单直观、适应性强、运算速度快、容易实时实现,应用较广,但需要考虑光线及身体其他部位颜色等的影响,识别的手势种类有限。三维手势模型的建模方法精度较高,但模型复杂、对设备的计算能力要求较高、实时性较差,且三维模型的参数空间维数较高,获取模型参数较困难。