本文由 ARinChina( www.arinchina.com )原创,转载请联系 ARinChina(微信 ID:arinchinaservice)。
手势是无声的语言。人们在生活中借用手势,来表达各种各样的感情。现在,人还可以与计算机之间进行手势互动。
与人之间的手势互动很容易理解,与计算机之间是怎么实现的呢?
手势分割
想要使计算机识别人的手势,首先得将手势从背景中分割出来。因为计算机采集手势信息的同时,也会采集到手势所处的场景信息。
手势分割通常采用以下几种方法:
用黑色或白色的墙壁做背景,着深颜色服装,尽可能简化背景。要求人手戴上特殊的手套来强调手部也可,总之在环境上要突出显示手部。
采集各种手势在各个时刻、不同位置、不同比例的手型图像,作为手势匹配的模板,建立一个庞大的数据库。
使用边缘检测,将手与背景分离开来。
手势模型训练
计算机同人一样,在识别一个手势前,必须先告诉它这个手势是什么,代表什么意思。
这个过程就是手势建模。模型的选取取决于具体应用,如果要实现自然的人机交互,就必须建立一个精细有效的手势模型,使得识别系统能够对用户所做的绝大多数手势做出正确反应。
目前,手势建模方法可以归结为两大类:基于表观的手势建模和基于 3D 模型的手势建模。
基于表观的手势建模是:根据手势的指头数以及指间的夹角不同,对手势进行分类,实现手势在旋转缩放条件下的快速识别。
基于 3D 模型的手势建模方法是:首先合成人体的 3D 模型,然后改变模型的参数,直到模型和真实人体映射出同样的视觉图像,然后分析身体姿态。
基于表观特征的手势建模方式比较直观、适应性强、运算速度快。但实际应用中,需要考虑到光线及身体其他部位颜色的影响,这些因素都将直接影响手势区域的提取。
基于 3D 模型的手势建模识别精度比较高,避免了基于表观特征识别时因遮挡造成的错误识别。虽然 3D 建模技术已经相当成熟,但模型还是太复杂,以至于不能快速地渲染响应。
因此大多数产品,如 Leap Motion 和 HoloLens 等,都采用了深度图像信息和手势表观特征相结合的方式。这种方式既可以达到基于表观的识别速度,又可以实现基于 3D 的识别精度。
手势分析
对手势进行建模后,接下来需要对手势进行分析。手势分析就是估计选定的手势模型参数,这一步一般由特征检测和参数估计组成。在特征检测过程中,必须先确定人手位置。根据所用的线索不同,可以把定位技术分为基于颜色定位、基于运动定位以及多模式定位三种。
基于颜色定位技术的主要缺点是:在不同的光照条件下皮肤颜色变化较大,并且手和身体颜色相同,当身体其他部位出现在手势背景中,会导致识别错误。解决这一问题的简单方法,就是佩戴一副特殊的手套。
基于运动的定位技术通常跟某些假设一起使用。例如,假设通常情况下只有一个人在做手势,并且手势者相对于背景的运动量很小,也就是说图像中只有手部是运动的。
基于多模式定位技术,就是运动和颜色信息的融合定位人手。这种方式效果更加准确,但是计算量会增大。
匹配