手势识别:使用标准2D摄像机建立一个强大的的手势识别系统

手势和语言一样,是人类交流的一种自然形式。事实上,它们可能是最自然的表达方式。进化研究表明,人类语言是从手势开始的,而不是声音。另一个证明就是婴儿在学会说话之前,使用手势来传达情感和欲望。

许多科技公司一次又一次尝试用手势控制器来代替键盘和鼠标,以记录用户的手部或手臂动作的意图。虽然一些第一类系统使用了有线手套,但现代的方法往往依赖于特殊的摄像头和计算机视觉算法。最著名的例子是微软的Kinect,它于2010年11月推出,并创下了吉尼斯世界纪录,成为最畅销的消费设备。尽管Kinect最初取得了成功,但手势控制器并没有得到消费者的广泛认可。

原因可能是传统的手势控制系统有几个缺点:首先,它们要求用户购买特殊的硬件,比如立体声摄像机或飞行时间摄像头,以在三维空间中捕捉视觉数据。这已经排除了像笔记本电脑或智能手机这样的标准消费硬件。其次,现有体系的表现并不完美。现实世界是混乱的,每个用户都倾向于以略微不同的方式执行一个给定的手势。这使得构建强大的、用户独立的识别模型变得困难。

在TwentyBN上,我们采用了一种不同的手势识别方法,使用了一个非常大的、带注释的动态手势视频并使用神经网络训练这些数据集。我们已经创建了一个端到端的解决方案,它运行在各种各样的摄像机平台上。这使得我们可以建立一个手势识别系统,它是稳健的,并且只用一个RGB摄像机实时工作。

“Jester”数据集

为了训练我们的系统,我们使用了大量的简短的,密集的视频剪辑,这些视频片段是由我们社区的群众收集的。该数据集(https://www.twentybn.com/datasets/jester)包含15万段25个不同类别的人类手势视频,以8:1:1的比例进行训练/ dev/测试;它还包括两个“无手势”类,以帮助网络区分特定的手势和未知的手势动作。视频显示,人类演员在网络摄像头前表演通用手势,比如“向左/右转”,“两个手指向上/向下滑动,”或“将手向前/向后摆动”。“如果你想了解更多关于这个数据集的信息,你可能会发现,我们已经发布了一个在创意共享许可下用于非商业用途的重要的图像抓拍。”

视频剪辑是具有挑战性的,因为它们捕捉了真实世界的复杂动态。看看这段视频:

虽然这个手势对人类来说很容易辨认,但对于计算机来说却很难理解,因为视频中包含了次优光照条件和背景噪音(猫穿过场景)。Jester的训练迫使神经网络学习相关的视觉特征等级,以便将信号(手运动)与噪音(背景运动)分开。基本的运动检测是不够的。

模型架构

过去几个月我们的工作重点是有效地使用我们日益增长的Jester数据集,设计和训练神经网络。我们研究了几个体系结构,提出了一个既满足高性能需求又创建最小运行时开销的解决方案。最后,我们在一个包含三维卷积网络(3d – cnn)的架构上聚合,以提取时空特征,一个循环层(LSTM)来建模更长的时间关系,以及一个输出类概率的softmax层。

与擅长处理图像的2d – cnns相比,3d – cnns使用三维滤镜将二维卷积扩展到时域。视频被处理成帧的三维“卷”。在神经网络的下层使用这样的3D过滤器是有帮助的,特别是在运动中起关键作用的任务中。神经网络的输出是一系列特性,每一个特性都可以被看作是一个小的输入视频片段的压缩表示。

然后由LSTM层处理这个特性序列,允许较长的时间依赖。在测试的时候,我们利用了一个事实:循环网络是一个可以通过时间来完成的动态系统。在训练时,每一个循环隐藏状态通过一个softmax层转换为类概率向量,得到的预测序列在时间上是平均的。平均向量被用来计算损失。可以认为这是一种让网络尽快输出合适的标签的方式,迫使它与视频中发生的事情保持同步。这种常见的方法可以使模型具有反应性,并在完成一个手势之前,输出对正确的类的最佳猜测。

我们的3d – cnn架构是一系列成对的层的序列,这些层的过滤器大小分别为1和3,按顺序排列。过滤器大小为1的层用于解释channel-wise相关性,并减少下一层的通道数。过滤器大小为3的层捕获空间信息。最终的架构能够达到18fps的处理速度,有87%的离线验证精度。

成果

为了展示我们的成果,我们使用Python和Javascript创建了一个简单的客户机-服务器系统,我们可以使用它来实时演示网络的推断。

系统由多个并行进程组成,分别负责系统的不同部分:视频捕获、网络推理、编制和HTTP服务。该模型在TensorFlow中实现,我们使用协议缓冲区来保存和加载网络。这让我们可以在网络浏览器中查看当前的网络摄像头流,并查看预测的质量。你可以在这里看一段更长的视频。

视频地址:https://www.youtube.com/watch?v=VlPnqL5osYQ

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-09-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

还敢说自己是TED粉吗? 连哪个演讲最爆款都不知道!

1623
来自专栏CreateAMind

her训练效果,可以准备人机乒乓球比赛了

1032
来自专栏用户2442861的专栏

美团推荐算法实践

推荐系统并不是新鲜的事物,在很久之前就存在,但是推荐系统真正进入人们的视野,并且作为一个重要的模块存在于各个互联网公司,还是近几年的事情。

2641
来自专栏人工智能

老师木讲架构:深度学习平台技术演进

新智元推荐 来源:OneFlow 【新智元导读】近日,袁进辉(老师木)代表OneFlow团队在全球互联网架构大会上海站做了《深度学习平台技术演进》的报告。报告包...

5098
来自专栏朱云龙的专栏

【SPA大赛】SPA大赛数据探索与解题思路

本次腾讯社交广告算法大赛以移动app广告转化率预估为背景,以移动App广告为研究对象,预测App广告点击后被激活的概率:即给定广告、用户和上下文情况下广告被点击...

2500
来自专栏华章科技

厉害了,利用深度学习开发老板探测器(附源码)

有的浏览器设置了boss按键,手快的人还可以切换屏幕,不过总会显得不自然,而且经常搞的手忙脚乱的。

762
来自专栏ATYUN订阅号

告别Python,用神经网络编写的软件走向2.0时代

有时人们把神经网络称为“机器学习工具箱中的另一种工具”。有时你可以用它们来赢得Kaggle的比赛。但是,这种解释完全见木不见林。神经网络不只是另一种分类器,它们...

3745
来自专栏应兆康的专栏

18. Eyeball和Blackbox开发集应该多大?

1191
来自专栏人工智能头条

CCTC 2017 | 第四范式涂威威:怎样设计框架才能兼顾开发与执行效率

942
来自专栏人工智能头条

微博深度学习平台架构和实践

2884

扫码关注云+社区