Ian|在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂拳无虚发( 二 )



Ian|在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂拳无虚发
文章图片

为了读懂这些代码 , Ian 对源代码进行了逆向工程(反汇编) , 并对游戏人物的速度进行逐一修改 , 使得每一个人物都是可被击败的 。

Ian|在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂拳无虚发
文章图片

在完成这些操作之后 , Ian 成功打败了终极 boss 泰森 。

Ian|在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂拳无虚发
文章图片

最后 , Ian 还把游戏以及配套的教程放到了网上 , 点击以下网站、打开摄像头就可以试玩:https://reallifepunchout.com/
MoveNet 是个什么模型?
上述进行实时姿态估计的算法用到了谷歌今年推出的 MoveNet 模型 , 它是一个预训练模型 , 所以设置好以后即可使用 。 该模型能够快速、准确地检测人体的 17 个关键节点(如脚踝、膝盖、肩膀、手肘、手腕、耳朵、眼睛和鼻子等) , 能够以 50+ fps 的速度在笔记本电脑和手机上运行 。 该模型已在 TF Hub 上提供 , 有两个变体 , 分别称为 Lightning 和 Thunder 。 Lightning 适用于对延迟要求严格的应用 , 而 Thunder 适用于对准确性要求较高的应用 。 因此 , 我们可以看到 Thunder 模型的关键点得分通常会比 Lightning 略高 。
MoveNet 在两个数据集上训练完成:COCO 和一个名为 Active 的谷歌内部数据集 。 其中 Active 数据集通过在 YouTube 上的瑜伽、健身和舞蹈视频中标注关键点(采用了 COCO 的 17 个身体关键点标准)而产生 。 训练时 , 每段视频不超过三帧 , 以增加场景和个体的多样性 。

Ian|在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂拳无虚发
文章图片

Active 关键点数据集的图像
通过完全在客户端运行该模型的方式可实现对运行速度的需求 , 即在使用 TensorFlow.js 的浏览器中运行且在初始页面加载后不需要服务器调用 , 也不需要安装任何依赖项 。

Ian|在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂拳无虚发
文章图片

MoveNet 可以通过快速动作和非典型姿势跟踪关键点 。

Ian|在线试玩,在体感游戏中打败泰森,这位小哥破解了任天堂拳无虚发
文章图片

传统方案(上)与 MoveNet(下)在高难度姿态检测上的对比结果 , 传统方案会跟丢关键点 , 而 MoveNet 不会
MoveNet 架构
MoveNet 是一种自下而上的估计模型 , 使用热图来准确定位人体关键点 。 该架构由两个组件组成:一个特征提取器和一组预测头 。 预测方案大致遵循 CenterNet , 但变化明显 , 提高了速度和准确率 。 所有的模型都是用 TensorFlow 对象检测 API 进行训练 。

推荐阅读