ramy  2021-02-17 08:49:28  计算机视觉 |   查看评论   

四、整合系统

在完成了上述三个模块的基础上,下一步就是把三者整合起来。连接关节识别模块和手势识别模块不难,因为两者都是由 Python 编写。但把这两者和 3D 引擎结合就出现了难题,因为 3D 引擎是由 C++ 编写的,而用 Python 访问 OpenGL 基本是不可能的。被窝网

为此,Nalwan 选择通过 socket 来整合该系统,这是 TCP 协议使用的一种低级通信机制。由于两个模块在同一电脑中运行,延迟将被控制在 5 毫秒以内。通信层由一个在 Python 应用中的客户端模块、和一个在 C++ 应用中的服务器模块组成。

Griffin 的整体架构图

▲Griffin 的整体架构图

校准与测试

一切准备好后,Nalwan 对 Griffin 系统进行了测试,在执行以上的节点捕捉、姿势识别和 3D 渲染的同时,整体的帧率达到 60FPS。

Nalwan 向儿子 Dexie 演示了如何玩这个游戏,儿子看着电视里的雄鹰和爸爸是一样的姿势,感到十分兴奋。Dexie 上手玩的时候,一下子就玩了半个小时,扮演着雄鹰的身份,在蓝天下翱翔、在峡谷里躲避。被窝网

Dexie 的飞行体验

▲Dexie 的飞行体验

对于 Nalwan 来说,这也是好事,一方面儿子玩的开心了,另一方面,儿子玩累了睡得很早,晚上 Nalwan 就不会被熊孩子打扰了。

总结

在 Nalwan 看来,这次制作游戏的实践也让他受益匪浅,他总结了如下的一些收获。

1.Torch2trt 能自动将 PyTorch 模型移植到 TensorRT 中去,大大加快 AI 模型的运行速率。

2.NVIDIA Jetson AGX Xavier 性能非常强劲,可以连贯地运行包含 30 个实时 1080p 视频的视觉模型。

3.Amazon SageMaker JumpStart 提供了海量的流行 AI 模型供开发者使用。被窝网

4.构建 3D 游戏引擎让他回忆起了之前作为游戏和电影 SFX 开发者的身份,刷新了对自己 OpenGL、C++ 和计算机图形学能力的认知。

5. 他本可以通过 Unity Engine 和 Kinect sensor 在 Xbox 中构建 Griffin,但是自己动手 DIY 一个游戏远比这有趣得多。

6. 在游戏里扮演一只老鹰是很累人的,要一直举着自己的手臂。然而,真正的老鹰会借助气流,保持它们滑翔的姿态。

-End-

参考:

http://agustinus-nalwan.medium.com/making-my-toddlers-dream-of-flying-come-true-with-ai-tech-85e40d7144a2

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自程序员奶爸为儿子自制视觉互动游戏,相关代码已开源-被窝网

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]