资讯详情

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

大家好,欢迎光临 Crossin的编程教室~

几天不见,Crossin 去玩什么游戏?这次我做的不是游戏,而是游戏机!

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

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

我这次做的 demo,它是一个使用相机的动作识别系统。理论上,这个识别系统只需要普通的计算机和普通的相机就可以运行。但我最近得到了一件好事,它大大提高了我的开发和运行效率。

这就是我说的好事。,是 NVIDIA 的AI边缘计算设备。什么叫边缘计算,简单来说就是尽可能多的处理数据,应用数据。比如机器人,自动驾驶。这种场景对计算的实时性要求很高。很难说数据会传输到计算中心,机房的大人物会在返回设备之前处理结果。因此,对于边缘计算设备,一是计算能力强,二是足够小,不仅体积小,而且能耗小。

这款 AGX Orin 就是 NVIDIA Jetson 最新的系列。到什么程度,目前市场上还没有现货可买,只能预订。所以我的可以说是全球限量版。和上一代 Jetson AGX Xavier 它的性能比每秒提高8倍 275 万亿次计算。这种程度相当于内置GPU服务器,而且它的尺寸太小,可以托在手掌上。

除了强大的硬件,它自然是必不可少的 NVIDIA AI 支持相关软件。对于大多数常见的软件AI应用程序,如人脸识别、物体识别、动作识别、自然语言处理、语音合成等,都提供了一些预训练的模型。这太方便了。

开机安装好 JetPack 开发套件,这里有很多测试程序可以让你体验。官方文档还提供了许多帮助开发者开始的示例。

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

可以看出,与上一代产品相比,有了显著的改进:

在官方的 Hello AI World 还提供了一些 demo。

例如,物体识别,识别一帧只需要10毫秒,可以用于实时视频监控,甚至在游戏中。

还有一个 demo:

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

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

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

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

里面使用 SVM 支持向量机训练手势分类器 Python 的 scikit-learn 模块。我们的第二部分也可以使用相同的方法,但我们使用全身模型。

我们需要一些样本数据来训练分类器。

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

结合以上所有这些,我们得到了我们想要的功能:

视频演示:花了两天时间,我自制了一台体感游戏机_哔哩哔哩_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分钟,轻松学习编程。

标签: 没kinect传感器xbox

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台