大家好,欢迎来到 Crossin的编程教室~

几天不见,Crossin 又去做什么游戏去了呢?这次我做的不是游戏,而是游戏机!而且是体感游戏机

说到体感游戏,现在大家可能最多想到的是 switch 上的健身环大冒险。

但往前几年,其实还有另一个非常火的体感游戏设备,就是 xbox 上的 kinect。和 switch 用带有传感器的手柄来识别玩家动作不同,kinect 使用的是一组摄像头,通过图像来识别玩家的动作。

我这次做的 demo,就是一个使用摄像头的动作识别系统。理论上来说,这个识别系统只需要普通的电脑和普通的摄像头就可以运行。不过我最近正好拿到一样好东西,它可以让我这次的开发效率和运行效率都大大提高。

这就是我说的好东西,全名是 Jetson AGX Orin,是 NVIDIA 的AI边缘计算设备。什么叫做边缘计算,简单来说就是对于数据的处理尽可能和产生数据的应用在一起。比如像机器人、像自动驾驶。这种场景对计算的实时性要求高,不好说把数据传到计算中心,靠机房的大家伙们处理完再把结果返回给设备。所以对于边缘计算设备来说,一是要计算能力够强,二就是要足够小,不仅是体积小,而且要能耗小。

这款 AGX Orin 就是 NVIDIA Jetson 系列的最新款。新到什么程度,就是目前市面上还没有现货可以买,只能预定。所以我这台可以说是一个全球限量版。和之前上一代 Jetson AGX Xavier 相比,它的性能提升到了8倍,可达到每秒 275 万亿次计算。这个程度已经相当于内置了GPU的服务器,而它的大小则小到可以托在手掌上。

除了强大的硬件之外,这里面自然也少不了 NVIDIA AI 相关软件的支持。并且对于大多数常见AI应用,比如人脸识别、物体识别、动作识别、自然语言处理、语音合成等等等等,它都提供了一些预训练好的模型。这个简直太方便了。

开机安装好 JetPack 开发套件,这里就有了很多可以运行的测试程序来让你体验。官方文档里也提供了很多示例来帮助开发者上手。

这里是我运行视觉和对话式AI基准测试的结果:

可以看到跟上一代产品相比有非常显著提升:

在官方的 Hello AI World 里,也提供了一些 demo。

比如物体识别,识别一帧画面只需要十几毫秒,完全可以用在实时的视频监控,甚至正在进行的游戏当中。

还有这样一个 demo:

好家伙,这不我一半的工作量已经完成了嘛。

拿到人体姿态数据之后,我们就可以用各种动作对应的数据来训练一个分类器。然后通过分类器来识别摄像头实时拍摄到的用户姿态,判断出动作。再根据识别出的动作,向系统发送键盘指令。这样就完成了一个简单的基于人体动作的交互系统。

在 NVIDIA 智能物联网的 github 仓库里,我发现了一个类似的项目,用手势去操作浏览网页。

https://github.com/NVIDIA-AI-IOT/trt_pose_hand

里面使用 SVM 支持向量机来训练手势分类器,这个用到 Python 的 scikit-learn 模块。我们的第二部分也可以用同样的方法,只不过我们使用的是人体全身模型。

为了训练出分类器,我们需要一点样本数据。

之后,就是通过 pynput 模块发送键盘制令。

将以上这些全部合在一起,就得到了我们想要的功能:

一个可以用动作来玩游戏的系统

视频演示:耗时2天,我自制了一台体感游戏机_哔哩哔哩_bilibili

对于 Orin 来说,用在这个项目上其实有点大炮打蚊子了,因为姿态判断和动作识别用的都是预训练模型,实时的计算量并不算大。但它的软件环境和开发社区资源确实大大提升了我这次的开发效率。

唯一不足的就是从我家的网络连 github、apt、pip 都太慢了,以至于花了不少时间在环境安装上,如果相关资源能有一套国内镜像就更好了。

最后有一个小彩蛋,你们是否留意到我用来演示的游戏 KOF97。在2009年,也就是 kinect 正式发布的前一年,我做的硕士毕业设计,其实就是:使用单摄像机的人机交互系统

而在其中的动作识别部分,用的同样也是 SVM 支持向量机。在答辩时,我用的演示游戏,就是 KOF97

在论文最后的工作展望里,我曾写到:

没想到,在13年后,我自己把这个坑填上了。这不禁让我又想到乔布斯曾说的:

相信我们生命中曾经经历的那些点,将在未来的某一天以某种方式串连起来。


本文代码基于NVIDIA官方示例修改:

https://github.com/NVIDIA-AI-IOT/trt_pose_hand

运行环境:

NVIDIA Jetson AGX Orin

JetPack 5.0

Python 3.8.10

代码已开源:python666.cn/c/2

获取更多教程和案例,
欢迎搜索及关注:Crossin的编程教室
每天5分钟,轻松学编程。

耗时2天,我自制了一台体感游戏机相关推荐

  1. 树冠体积计算之台体-凸包算法

    既然都已经复现了体元累加法,就顺带着也复现一下台体-凸包算法哈哈. 文章目录 一.简介 二.实现步骤 三.代码实现 四.小结 一.简介 该方法的思路也是很简单,就是将树冠分割为多个不规则的台体,对每个 ...

  2. 自制了一台计算机,可编程哦

    接触计算机多年,经常会有一种云里雾里的感觉.今天,一起动手来自制一台计算机,加深体会和理解. 必须说明的是,计算机有复杂的,也有简单的,但结构和原理基本相通,本文制作的是最简单的计算机. 我也会对自制 ...

  3. 自制操作系统5-结构体、文字显示与GDT/IDT初始化

    DAY5 结构体.文字显示与GDT/IDT初始化 2020.10.17-2020.10.18 今天的内容主要学习了如何显示符号,将鼠标指针显示出来后,进而考虑如何让它动起来. 1. 接受启动信息 文档 ...

  4. 1.3.1 柱体、锥体、台体的表面积与体积

    柱体的表面积:如果圆柱的底面半径为\(r\),母线长\(l\),那么圆柱的底面面积为\(\pi r^2\),侧面面积为\(2\pi rl\),因此,圆柱的表面积:\(S=2\pi r^2+2\pi r ...

  5. 自制hifi播放器,感兴趣的小伙伴一起

    前段时间突然看到用FPGA做音频播放器的,心里也是很痒,想设计一款. 具体看到的链接是http://bbs.hifidiy.net/forum.php?authorid=336820&mod= ...

  6. 学了 Python 能用来做什么?

    零基础python入门教程:python666.cn 大家好,欢迎来到 Crossin的编程教室 ! 说起编程语言,Python 也许不是使用最广的,但一定是现在被谈论最多的. 随着近年大数据.人工智 ...

  7. Android官方开发文档Training系列课程中文版:连接无线设备之网络服务搜索功能

    原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/index.html 引言 Android设备除了可以与服务器 ...

  8. 镜头评价指标及测试方法【四】————手机摄像头调查

    由于近期的一些工作内容和地点的原因,所处的领域可能会发生一定的变化,因此,做了一些相关的调研来支撑自己的选择,先来一份调研数据: 2019 年,全球六大手机品牌的市场份额总计达到 73.3%,同比上升 ...

  9. 深度相机(五)--Kinect v2.0

    原文:http://blog.csdn.net/qq1175421841/article/details/50412994 ----微软Build2012大会:Kinect for Windows P ...

最新文章

  1. C#笔记(五):文件和流
  2. 计算机窗口预览图,window_Win7系统资源管理器加上预览窗格功能的方法,  图片缩略图是否太小?PPT - phpStudy...
  3. 谈新手对CString的使用
  4. 实现一行或多行文字溢出隐藏显示省略号
  5. NetAug(网络增强)—Dropout的反面
  6. 关闭layui的弹出层,还会遮罩后面的界面
  7. ubuntu下vim配置成c++开发编辑器
  8. 有没有可能在安卓上,使用swing/awt开发?
  9. 【求助】想知道Xcode怎么像devc一样调试程序
  10. QT软件开发: 获取CPU序列号、硬盘序列号、主板序列号 (采用wmic命令)
  11. Office 解决WORD转PDF未显示书签。
  12. (SWAT-6)输入表写入及模型运行
  13. JVM常见面试题汇总笔记
  14. 第七章 逻辑回归 - 多元逻辑回归
  15. UE-战斗无止境的复刻
  16. 面向对象程序设计(JAVA)复习笔记(下)
  17. 84小时,230台服务器,袋鼠云和客户一起全力阻击WannaCrypt蠕虫病毒
  18. 万能RecyclerView分割线扩展
  19. unable to access https://github.com/....解决方法
  20. 简单描述下微信小程序的相关文件类型?

热门文章

  1. Digital Signal Processing 数字信号处理
  2. 飞机机身控制电子设计,原理图和PCB
  3. 2020年育婴员(五级)报名考试及育婴员(五级)模拟考试题
  4. QQ邮箱验证码登录(移动端邮箱验证登录)
  5. Web与排版学上的字体问题
  6. Java日志文档怎么写
  7. 霸气牵手众多手机品牌商,苏宁手机蜜蜂节实力彰显行业影响力
  8. 【卡尔曼滤波】离散线性系统的卡尔曼滤波
  9. Opencv基础使用3——HDR 图像合成
  10. 五一劳动节,给父母发个红包吧