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

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

零基础python入门教程:python666.cn


大家好,欢迎来到 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。


640.png



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


640.jpg


还有这样一个 demo:


640.gif


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


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



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


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

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


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



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



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


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




对于 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

代码已开源,获取代码请在公众号“Crossin的编程教室”回复关键词:

动作识别

感谢转发点赞的各位~


_往期文章推荐_

病毒传播模拟实验2-清零还是共存?

相关文章
|
2月前
|
机器学习/深度学习 人工智能 缓存
万字综述,讲一讲这两年大模型这整个领域到底发展了哪些方面
本文深入探讨了自2023年GPT-4发布以来,大型语言模型(LLM)领域的发展趋势及其技术演进路径。
万字综述,讲一讲这两年大模型这整个领域到底发展了哪些方面
|
7月前
|
开发框架 监控 JavaScript
解锁鸿蒙装饰器:应用、原理与优势全解析
ArkTS提供了多维度的状态管理机制。在UI开发框架中,与UI相关联的数据可以在组件内使用,也可以在不同组件层级间传递,比如父子组件之间、爷孙组件之间,还可以在应用全局范围内传递或跨设备传递。
164 2
|
8月前
|
人工智能 测试技术 Python
VideoChat-Flash:上海AI Lab开源高效处理超长视频的多模态大模型
VideoChat-Flash 是上海人工智能实验室等机构推出的多模态大模型,通过分层压缩技术高效处理长视频,支持长达数小时的视频输入,推理速度提升5-10倍。
292 1
VideoChat-Flash:上海AI Lab开源高效处理超长视频的多模态大模型
|
11月前
|
存储 运维 监控
高效运维:从基础架构到自动化管理的全面指南
【10月更文挑战第11天】 本文将深入探讨如何通过优化基础架构和引入自动化管理来提升企业IT运维效率。我们将从服务器的选择与配置、存储解决方案的评估,到网络的设计与监控,逐一解析每个环节的关键技术点。同时,重点讨论自动化工具在现代运维中的应用,包括配置管理、持续集成与部署(CI/CD)、自动化测试及故障排除等方面。通过实际案例分析,展示这些技术如何协同工作,实现高效的运维管理。无论是IT初学者还是经验丰富的专业人员,都能从中获得有价值的见解和实操经验。
268 1
|
机器学习/深度学习 人工智能 自然语言处理
AIGC最近很火,给大家推荐一个已经有1000位开发者使用的中文aigc开源模型,包括ai画图、ai聊天
作为2022年以来AI圈最大的趋势,AIGC意味着,AI进军到了此前被视为“人类独占”的领域,如艺术表达、科学发现。
2256 0
AIGC最近很火,给大家推荐一个已经有1000位开发者使用的中文aigc开源模型,包括ai画图、ai聊天
|
Java Linux PHP
【应急响应】后门攻击检测指南&Rookit&内存马&权限维持&WIN&Linux
【应急响应】后门攻击检测指南&Rookit&内存马&权限维持&WIN&Linux
268 1
|
安全 Windows
【红队APT】钓鱼篇&Office-CVE&RLO隐藏&压缩包释放&免杀打包捆绑
【红队APT】钓鱼篇&Office-CVE&RLO隐藏&压缩包释放&免杀打包捆绑
241 1
|
Ubuntu Shell 网络安全
Mobaxterm远程访问Unbuntu
Mobaxterm远程访问Unbuntu
|
SQL 机器学习/深度学习 自然语言处理
【科研新手指南2】「NLP+网安」相关顶级会议&期刊 投稿注意事项+会议等级+DDL+提交格式
【科研新手指南2】「NLP+网安」相关顶级会议&期刊 投稿注意事项+会议等级+DDL+提交格式
1120 0