谷歌推出基于AI的开源手势识别算法,可识别单手21个骨骼点
8月20日消息,谷歌发布全新的手势识别技术,该技术集成于开源跨平台框架MediaPipe(可为多种类型的感知数据构建处理流程),特点是采用机器学习技术,支持高准确性手势和五指追踪,可根据一帧图像推断出单手的21个立体节点。与目前市面上较先进的手势识别技术相比,谷歌的全新技术不需要依赖台式机来计算,而是在手机上就能进行实时追踪,并且还能同时追踪多只手,可识别遮挡。
据谷歌称,该手势识别技术可形成对基础手语的理解,以及对手势操控的支持,还可用于AR。而为了训练识别手势的机器学习算法,谷歌采用了一个由3个模型组成的框架,包括:手掌识别模型BlazePalm(用于识别手的整体框架和方向)、Landmark模型(识别立体手部节点)、手势识别模型(将识别到的节点分类成一系列手势)。其中BlazePalm可为Landmark模型提供准确建材的手掌图像,这大大降低了对旋转、转化和缩放等数据增强方式的依赖,让算法将更多计算能力用在提高预测准确性上。
接下来,我们来一一解释下每个模型的具体细节。
BlazePalm:这是一个可识别单帧图像的模型,主要用于识别手掌初始位置,与用于识别面部的BlazeFace模型相似,都对移动端的实时识别进行了优化。BlazePalm可识别多种不同手掌大小,具备较大的缩放范围(~20倍),还能识别手部遮挡,并且能通过对手臂、躯干或个人特征等的识别来准确定位手部,弥补手部对于高对比度纹理特征的缺失。
在经过训练后,BlazePalm对于手掌识别的准确率可达95.7%。
Landmark模型:这一模型根据回归的方式,在BlazePalm识别到的手掌范围内可识别到21个立体节点坐标,它的识别效果足够好,甚至可以识别部分可见或自我遮挡的手部。
为了训练Landmark模型,谷歌还在真实数据中混合额外的人工合成手掌模型数据。在经过训练后,算法的平均回归误差可降低到13.4%。
手势识别模型:该算法模型可根据关节的的角度识别每根手指的状态,如:弯曲或伸直。接着,它会将每根手指的状态映射到的预定义的手势上,并通过这种方法来预测基础的静态手势。据悉,谷歌现有的预定义手势包括美国、欧洲和中国三个国家的不同数数手势,以及竖大拇指、握拳、OK、“蜘蛛侠”等手势。
目前,谷歌的这款全新手势识别算法将通过MediaPipe框架进行开源,并希望通过这种方法让研究人员和开发者创作出有创意的应用场景和研究途径。而接下来,谷歌将继续提高这项手势识别技术,增加可识别的手势,并将增加对动态手势的识别。