Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >飞桨手势识别带你玩转神庙逃亡

飞桨手势识别带你玩转神庙逃亡

作者头像
用户1386409
发布于 2020-03-30 02:53:44
发布于 2020-03-30 02:53:44
1.7K0
举报
文章被收录于专栏:PaddlePaddlePaddlePaddle
随着经济社会的进步,人们对美好生活的追求也不断地刺激着电子娱乐行业的发展。但这些应用场景的人机交互方式却一直被束缚在通过键盘、鼠标、触摸屏的物理接触方式上。这些传统的交互方式将玩家的操作范围局限在简单的二维平面空间,也限制了游戏开发者创意的发挥。因此,我们引入了一种新的人机交互模式——手势识别交互。

手势交互方式符合人类思维逻辑,具有自然性和直观性等特点。使用者不需要有过高的门槛,便可以很好地体验到人机交互的乐趣。手势识别技术具有良好的应用前景——包括电子娱乐、智能家居、VR及自动驾驶等热点领域。这个项目设计的目的就是实现简单直观的人机交互方式,并促使该技术和产品在未来大规模民用成为可能。

我们的项目基于飞桨及其高性能端侧推理引擎Paddle Lite开发,实现了在基于Android系统的手机、平板电脑、嵌入式开发板上利用手势来实时控制贪吃蛇、神庙逃亡、地铁跑酷等交互式游戏,并可在大屏幕端进行投屏展示。

项目内容

手势识别交互系统采用分层架构、模块化方式进行设计,可满足系统定制及扩展的灵活要求。主要包括:前端采集模块、算法模块、通信模块。

01

采集模块

采集模块实现了Android设备上图像采集与设备运行状态的监控功能。通过高频调用关联相机来获取手势图片,将采集到的图片放入缓冲池中以供算法分析模块使用。此外,采集模块还负责对所连设备进行状态监测,如相机离线将及时产生预警,并支持自动重连等功能,保证系统的稳定性。

1. 拍照方法的实现

Android Camera是安卓系统提供的实现自定义相机功能的官方支持库,采集模块封装了一系列相关调用方法,实现了连续抓拍存储及浮窗实时预览的效果。

此外,对于没有自带摄像头的安卓设备(如嵌入式开发板),我们使用外接USB摄像头,并完成 USB摄像头的驱动模块的编写,实现了设备对外接摄像头的调用及相关配置功能。

2. 浮窗实时预览

为了便于调试,通过Service组件定制浮窗的方式来在实时显示当前摄像机的预览画面、手势识别结果、处理响应延时等信息,并设立了开关来一键控制程序,如图所示.

浮窗实时预览效果(镜像显示)

02

算法模块

算法模块负责对输入的手势图片进行分类,并将识别结果返还。此部分的开发流程如下所示。

1. 数据集的选取与采集

在数据集的选取上,从NUS Hand Posture Dataset II[1]中选择了5类作为手机、平板电脑等小型设备的手势。该数据集每一类手势由40名志愿者分别在不同的环境下拍摄,并重复5次;同时每类还含有75张有人类身体噪音的图片。共(200+75)×5=1375张图片。

在研究过程中,我们发现NUS数据集的手势不符合所应用游戏的正常操作习惯(即上下左右)。因此,我们重新设计并自己采集了数据集,用于电视端远距离的演示。该数据集同样有5种类别,每类由3名志愿者在6种场景下重复6次,共540张图片。但自己在实验室采集的数据集环境比较单一,只适用于特定环境的展示。

从NUS Hand Posture Dataset II选取的5中手势, 环境复杂、部分手势不符合游戏操作习惯:

从左至右分别对应控制命令:无控制、上、下、左、右

重新设计并自己采集的数据集示例,环境单一、手势符合游戏操作习惯:

从左至右分别对应控制命令:无控制、上、下、左、右

2. 数据集增广、划分与预处理

由于深度神经网络的训练需要足够的数据支持,规模过小的数据集会使得模型的泛化能力差,容易导致过拟合。因此,我们按以下步骤对NUS数据集进行了增广,并划分为训练集、测试集:

  • 从原始1000张无噪音图片、375张有噪音图片中都分别选择125张,共250张作为测试集,以保证数据集在有无噪音、类别等维度的分布相同;
  • 将剩余的875张无噪音图片、250张有噪音图片都分别扩充为3500张,共7000张图片形成训练集。增广方式有:0.8~0.9倍的随机裁剪、以图片中心为旋转中心的±10°的随机旋转。

此外,还通过padding的方式将图片调整为方形,以保持原始手势及背景的长宽比。最后,在将图片传入神经网络之前,对图片进行z-score归一化,以加快神经网络的收敛速度。

数据集增广及预处理效果如下图所示:

数据集增广、预处理示意图(左:padding后的原图为方形,中:随机裁剪,右:随机旋转)

3. 设计、搭建与训练神经网络

卷积神经网络的选取与设计上,由于要将模型应用于计算资源非常受限的Android平台上,因此考虑选用轻量级神经网络MobileNet[2]。

MobileNet是目前常用的可以在移动设备端部署的轻量级神经网络。它将标准卷积用Depthwise Convolution和Pointwise Convolution代替,减少了模型参数与计算量。我们利用百度开源深度学习框架飞桨搭建MobileNet并进行训练。

较低延时是手势实时控制游戏的关键。为了降低算法延时,即尽可能减少模型参数量与计算量,但同时保证算法准确率,我们在MobileNet模型(

https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/mobilenet_v1.py)的基础上,通过调整网络结构(层数、各层通道数),设计多组实验进行对比,结果如表1所示。其中模型输入图片尺寸为120×120×3。最终选择了算法延时小,同时识别准确率较高的模型(序号3),其结构如表2所示。

4. 模型保存

在训练过程中,将模型进行保存,用于之后的推理预测。具体地,在训练时每个epoch都将神经网络的参数进行保存,并评估测试集准确率。训练完成后,选择测试集准确率最高的模型作为预测模型。

5. Android端推理

最后,基于Paddle Lite在Android端加载模型并进行推理预测。

首先我们要编译Android端能够调用的CPP库。本项目中编译的是Paddle Lite。编译时,参考Paddle Lite在GitHub平台上Android部分开发文档

https://github.com/PaddlePaddle/Paddle-Lite/blob/develop/mobile/doc/development_android.md),基于Ubuntu系统,利用Android NDK及CMake交叉编译出符合我们Android硬件环境的库libpaddle-mobile.so文件。

之后,将采集模块中摄像头捕捉的图片按照训练模型前完全一致的方法进行预处理,并加载保存好的预测模型,通过调用刚才编译的libpaddle-mobile.so库提供的API,就能实现Android端的推理。

下面是没有运行游戏的演示效果。将识别结果和包括摄像头拍照、算法推理、控制的总延时显示在浮窗上,方便调试。

03

通信模块

通信模块根据算法不同的推理预测结果,向操作系统发送相对应的控制命令,就实现了应用程序的控制。

跨进程操作通常采用进程间通讯,可建立专用通讯管道实现,我们采用向Android系统直写shell命令模拟动作事件的方式来实现系统控制功能,这种方式快捷高效,但需先取得root权限。

实验中用到的设备参数如表3所示。

作品展示

01

手机端贪吃蛇游戏

02

平板电脑端神庙逃亡游戏

03

嵌入式板+电视投屏端神庙逃亡游戏

总结

我们的手势识别交互系统是面向人机交互的嵌入式应用程序,用户仅需使用带有摄像头的安卓设备便可以利用手势实现对界面(游戏)的控制。利用嵌入式主板丰富的接口带来的多平台投影功能,还可以得到更好的展示与体验效果。

本项目中手势指令发出、识别不依赖任何可穿戴的设备,可以使用户获得沉浸式体验,并可带动相关游戏开发、设备制造等产业的发展。相信手势识别等AI技术在未来会更加完善,改善人类生活。

参考文献

[1] Pisharady P K, Vadakkepat P, Loh A P. Attention Based Detection and Recognition of Hand Postures Against Complex Backgrounds[J]. International Journal of Computer Vision, 2013, 101(3): 403-419.

[2] Howard A G, Zhu M, Chen B, et al. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications[J]. arXiv: Computer Vision and Pattern Recognition, 2017.

注:本文示例代码和视频所使用的是Paddle Lite早期版本,目前最新版本为Lite 2.3.0,项目链接:https://github.com/PaddlePaddle/Paddle-Lite

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PaddlePaddle 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
谷歌开源手势识别器,手机能用,运行流畅,还有现成的App,但是被我们玩坏了
借助TensorFlow Lite和MediaPipe,谷歌刚刚开源了一款手势识别器,可以直接在手机上运行,实时跟踪,并且已经开源。
量子位
2019/08/28
1.7K0
谷歌开源手势识别器,手机能用,运行流畅,还有现成的App,但是被我们玩坏了
​互动游戏:手势识别技术在虚拟现实游戏中的应用
在当今的科技领域中,虚拟现实(VR)技术正变得越来越流行。虚拟现实游戏作为其中的一个重要应用领域,吸引了越来越多的玩家。而手势识别技术的发展,则为虚拟现实游戏带来了全新的体验。本文将探讨手势识别技术在虚拟现实游戏中的应用,并介绍其部署过程和未来发展趋势。
数字扫地僧
2024/04/23
5330
手势识别:使用标准2D摄像机建立一个强大的的手势识别系统
手势和语言一样,是人类交流的一种自然形式。事实上,它们可能是最自然的表达方式。进化研究表明,人类语言是从手势开始的,而不是声音。另一个证明就是婴儿在学会说话之前,使用手势来传达情感和欲望。 许多科技公
AiTechYun
2018/03/05
3.5K0
手势识别:使用标准2D摄像机建立一个强大的的手势识别系统
石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源
深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即使是JavaScript这样曾经只是在浏览器中运行的用于处理轻型任务的脚本语言。
量子位
2019/08/21
1.2K0
石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源
基于FPGA的手势识别的多功能机械臂
随着信息技术的发展,人机交互技术逐渐由以键盘、鼠标等基于图形用户界面的方式,转变为以模拟和类似人类感知传输的信息类型。其中,手势识别因其具有的自然、直接、有效的交互特点,越来越受到研究人员的关注。传统的手势识别,需要借助配置有传感器的手套来确定具体的手势形态,成本高且操作不便,不具有推广性。基于机器视觉的手势识别技术,突破硬件局限,从模式识别算法层面革新人机交互方式,更适应未来人机交互发展趋势。机械臂作为现代工业领域自动化智能加工中最常见的执行终端,通过各个关节的协调运动与机械末端的配合,可进行多自由度模拟仿真。通过对舵机进行控 制设计,使机械臂能够完成抓取分拣、连续动作,从而使其具有比人手更好的动 作组合灵活性和指令完成准确性。
FPGA技术江湖
2025/05/26
1260
基于FPGA的手势识别的多功能机械臂
解读手势识别,或许不是VR交互的万能工具
现在主流的VR硬件设备,主要的输入输出设备还是类似传统游戏手柄的外设:Oculus在Touch没发布之前,一直用的是微软的Xbox的手柄;HTC和索尼都有自己研制开发的控制器作为交互工具。 但是如果想要在VR中达到更加自然的交互和沉浸体验,摆脱外设的手势识别必然是未来发展的一个大方向。 手势识别技术的发展 手势识别技术的发展,可以粗略分为两个阶段:二维手势识别以及三维手势识别。 早期的手势识别识别是基于二维彩色图像的识别技术,所谓的二维彩色图像是指通过普通摄像头拍出场景后,得到二维的静态图像,然后再通过计算
镁客网
2018/05/28
2K0
我用飞桨做了一个可回收垃圾材料分类机
随着社会生产力的发展,工业化、城镇化的兴起和人口增加,人类社会产生的垃圾与日俱增,加剧了全球范围内的资源短缺和环境污染,对自然环境和人体健康带来了巨大的挑战。
用户1386409
2020/03/24
8550
我用飞桨做了一个可回收垃圾材料分类机
打开快手,体验流畅的单目三维手势技术
历时一年多,快手研发人员在手部数据生成、数据真实化、网络定制化与轻量化、领域迁移等多个方面进行了大量探索,提出了领域特征自适应对齐和显式教师网络等方法,提高了跨域训练效果,降低了不合理手型概率,相关工作分别发表在 ACMMM 2020 和 BMVC 2020 上。
机器之心
2020/10/27
6510
打开快手,体验流畅的单目三维手势技术
资源 | TwenBN发布两个大型DL视频数据集:助力机器视觉通用智能
选自medium 作者:Moritz Mueller-Freitag 机器之心编译 参与:黄小天、Smith TwenBN 是一家人工智能公司,运用先进的机器学习技术,做到让机器像人一样理解视频。近日,他们发布了两个大型视频数据集(256,591 个标注视频)Something-something 和 Jester 的快照(snapshot)版本,希望机器通用视觉智能的发展。第一个数据集 Something-something 可以使机器细致地理解物理世界中的基本动作;第二个数据集 Jester 关于动态手
机器之心
2018/05/08
1.2K0
资源 | TwenBN发布两个大型DL视频数据集:助力机器视觉通用智能
用双手感知虚拟世界,微软认为手势识别是VR输入的未来
早在2013年,微软就演示了利用Kinect来使用悬浮手势操作Windows。2015年的时候,微软研究员又开始着手研究手势识别追踪技术handpose。这几年来,微软一直在追求摆脱键盘和鼠标,将身体
镁客网
2018/05/28
1.3K0
技术猿 | 技术牛人讲解手势识别技术
---- 手势识别大家并不陌生,想得到的是二维手型识别、二维手势识别、三维手势识别这几个名词,但是到底手势识别技术是什么?怎么定义的?又是如何工作的呢? 谈起手势识别技术,由简单粗略的到复杂精细的,大致可以分为三个等级:二维手型识别、二维手势识别、三维手势识别。在具体讨论手势识别之前,我们有必要先知道二维和三维的差别。二维只是一个平面空间,我们可以用(X坐标,Y坐标)组成的坐标信息来表示一个物体在二维空间中的坐标位置,就像是一幅画出现在一面墙上的位置。三维则在此基础上增加了“深度”(Z坐标)的信息,这
机器人网
2018/04/19
3.7K0
技术猿 | 技术牛人讲解手势识别技术
OpenCV_mediapipe手势识别
MediaPipe 是一款由 Google Research 开发并开源的多媒体机器学习模型应用框架,提供面部识别、手势识别的开源解决方案,支持python和java等语言
火星娃统计
2022/01/06
2.7K0
OpenCV_mediapipe手势识别
「深度」手势识别已起步,行业者还需找准刚需厚积薄发
手势识别是交互体验最基本的需求,精准与实时为关键所在。 这是一个奇怪的现象,突然爆发的行业火着火着就冷了,如虚拟现实; 这也是一个意料之中的现象,因为即便概念再火,不能真正落地也终是枉然,如VR交互式体验。 交互体验概念虽已打出许久 但仍处于 “被呐喊”的阶段 据不完全统计,截至2016年上半年,国内VR行业投融资事件共有117起,总投资规模超40亿元。其中2015年全年投融资事件有57起,投资规模为24亿元;2016上半年投资事件有38起,投资规模为15.4亿元。而到了2016年下半年,VR领域的投融资事
镁客网
2018/05/30
1.3K0
分享|16个含源码和数据集的计算机视觉实战项目
构建人数统计解决方案既可以是一个有趣的项目,又可以真正找到现实世界的应用程序。
Color Space
2024/04/12
1.4K0
分享|16个含源码和数据集的计算机视觉实战项目
第一课:人工智能在嵌入式中的机会
嵌入式人工智能的机会 深度学习、机器学习、人工智能可以说是当下最火爆的字眼,随着 AlphaGo 的一炮走红,仿佛人人都谈论着人工智能,说话不带 DL、CNN 这些字眼的就落伍了,创业企业不和人工智能联系起来的就无法拉到投资。 各大巨头也纷纷在 AI 领域布局,目前比较流行的深度学习框架有: 谷歌的开源深度学习框架 TensorFlow Facebook 的开源深度学习框架 Torchnet 百度的开源深度学习框架 Paddle 源自伯克利的 Caffe 基于 Theano/TensorFlow 的 Ker
刘盼
2018/03/16
1K0
第一课:人工智能在嵌入式中的机会
动作识别最新高效利器 ACTION-Net:通用的多路径激活模块 | CVPR 2021
本文是对我们 CVPR 2021 接收的工作 "ACTION-Net: Multipath Excitation for Action Recognition" 的介绍。主要针对强时序依赖行为识别这个场景,设计了一组卷积模块。
AI科技评论
2021/04/29
1.4K0
人脸表情识别实战:你的喜怒哀乐飞桨统统get!
【飞桨开发者说】李增保,2019年于安徽工业大学取得学士学位,目前在东南大学攻读硕士研究生学位,主要的研究方向为分布式无人机集群协同控制、算法设计与优化等。
用户1386409
2020/06/10
2.7K0
快来尝鲜!移动开发者实现AI业务的必选神器——飞桨移动端部署工具LiteKit
目前,越来越多的AI场景将AI能力直接部署在移动端,其优势主要在于实时、省流、以及安全性等方面。这些AI能力给移动端产品带来巨大的想象空间,促进了移动互联网下半场的繁荣。
用户1386409
2021/03/26
5880
快来尝鲜!移动开发者实现AI业务的必选神器——飞桨移动端部署工具LiteKit
XR交互技术趋势:6DoF追踪、手势识别、眼动跟踪……
简介:XR交互技术与实时云渲染共同推动了虚拟现实和增强现实的沉浸式体验发展。XR交互技术通过6DoF追踪、手势追踪、眼动追踪等手段,提供更自然、精准的用户交互方式;而实时云渲染则利用云端计算能力,为终端设备呈现高质量、低延迟的复杂图形内容。两者结合,使用户在XR环境中获得更加真实、流畅的体验。未来,XR交互技术将向多模态、精细化方向发展,进一步提升用户的沉浸感和交互体验。
Paraverse平行云
2025/01/16
2200
过来人的肺腑之言,攻读CV和ML硕士给我带来了什么?
在攻读机器学习高等学位的过程中需要选定一些研究课题,这些课题反映了未来你在机器学习领域发展的专业方向。
机器之心
2020/07/09
4320
过来人的肺腑之言,攻读CV和ML硕士给我带来了什么?
推荐阅读
相关推荐
谷歌开源手势识别器,手机能用,运行流畅,还有现成的App,但是被我们玩坏了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档