除了使用语言,人们之间还经常手势来沟通,最常见的便是“你真棒!”(我没有在反讽)。
随着人工智能的发展,人们也想教会机器识别人类沟通时的手势动作,但是很多的尝试都并不成功。
最近,事情出现了转机。来自谷歌人工智能实验室(Google's AI Labs)的研究者近日研发出了一套手势追踪机器学习算法,在机器识别手势方面取得了突破性的进展。
谷歌的机器学习算法能够计算手指移动的路径,即时地绘出每个手指与手掌的相对位置坐标图,进而判断此时人类摆出的具体手势是什么。此外,谷歌的新算法一大特点是,它并不需要消耗大量的硬件资源,只需要一个手机以及其摄像头,便能够做到手势识别。
做到这一点并不容易。
在其它能够识别手势的方法中(虽然它们还并不成功),至少都要依赖于性能强大的桌面或者云端设备,谷歌的机器学习算法不光将硬件资源简化到移动设备,并且能够同时识别多只手的手势。
在有限的硬件计算资源下识别多个手的手势是非常难的,因为多个手在做动作很容易互相重叠(比如握手),而且手与手长得十分类似,对比性并不强烈,同样造成了识别困难。
人类在做手势时,手指移动通常非常快,想要快速响应手指的移动并识别,通常需要多个摄像头在不同角度的观察,谷歌的算法在一个摄像头的情况就可以快速识别。
那么他们是怎么做到了算法轻量化呢?
谷歌在设计手势识别的机器学习算法时,就把减少数据量作为目标。所以他们从最开始就放弃了设别整只手的设计方案。
在他们设计的算法中,首先会找到手掌的位置,因为手掌是整个手最容易识别的部分,面积较大,形状比较固定。锁定了手掌的位置后,然后再挨个识别从手掌“发芽”而出的手指。在识别的过程中,算法会在手指关节、手掌与手指连接处、指尖等关键位置总共记录21个坐标,根据每个坐标的位置以及彼此的距离,画出当前手的大致姿势。
识别手的姿势后,下一步就是要理解姿势背后的含义了。
在机器学习的初始数据中,研究者输入了共3000张左右的手势图片,并告诉机器每一种手势代表的含义。随后开始了训练过程,不断输入新的图片,让机器学习算法进行自我判断,如果错误及时纠正,在机器不断的自我学习中,谷歌的手势识别算法做到了快速且准确。
谷歌这项最新的研究成功还没有应用于谷歌的任何产品,但是谷歌已经将其开源。显然,他们希望更多人能够借助此项研究成果,发掘手势识别更多的使用场景。
或许未来,在危机情况时,你可能无法发出声音,但是通过一些手势,就能发出求救信号。
领取专属 10元无门槛券
私享最新 技术干货