我在过去的26个月里一直在开发NiceShot AI,旨在通过计算机视觉技术进行游戏玩法分析实验。
基本思路是将录制的长时间游戏过程自动转换为结构化的游戏信息和精彩片段,弥补比赛统计(时间太短)和生涯统计(时间太长)之间的性能分析差距。
当前的工作流程是:
游戏视频 → YOLO检测 → 事件跟踪 → OCR/上下文过滤 → 事件时间戳 → 剪辑 → 精彩片段汇编 → 会话统计
例如,我可以对YOLO模型进行微调,以识别特定游戏的HUD元素,然后配置工作流程将这些检测结果解释为诸如击杀、死亡或奖牌等事件。
我想避免的一个问题是使整个系统过于依赖特定游戏。支持另一款游戏主要应该只需要一个新的检测器/模型和配置,而不是重写整个工作流程。目前,我正在朝这个方向努力。
我还使用OCR来处理那些不应计入游戏事件的状态。例如,在《使命召唤》游戏中,击杀指示器可能会出现在“击杀回放”或“观战”状态下,因此OCR层可以用来过滤这些情况。
系统可以围绕检测到的事件生成剪辑,并将它们汇编成精彩集锦,包括适合短视频/TikTok风格内容的竖版版本。
最近,我还在尝试在事件检测后使用轻量级视频大语言模型(Video LLM)。我并不是将整个多小时的游戏过程发送给视频大语言模型,而是提取围绕有趣事件的短剪辑,并请模型解释发生了什么。目标是最终将其转变为一个轻量级的对话式游戏教练。
该项目目前在本地的NVIDIA GPU上运行。我尝试过一台旧的GTX1650 4GB显存的笔记本电脑,运行良好,但当然速度较慢。
最后,我知道实时事件检测应该是未来的发展方向,这也是我最初的目标,但我选择了离线处理,因为我不希望计算机视觉推理干扰玩家的实际游戏表现。
我也很想听听其他人如何使检测器/推理层足够快速,以实现实时游戏,而不会造成明显的GPU/CPU负担。请记住,我输入的是1080p的帧。
该项目仍在不断发展,因此欢迎任何技术上的批评和建议。
谢谢。
返回首页
24小时热榜
如果你不熟悉RNGdle,它是一个每日游戏,会随机生成一个六位数的代码。这个游戏带来纯粹的多巴胺刺激,虽然内容不多,但你还需要什么呢?
我喜欢RNGdle的创意,但我觉得将其作为发现Minecraft种子的方式可能会更有趣。因此,我花了一天时间制作了这个。
对于不太了解的人来说,Minecraft是确定性的,所以如果你知道种子号码,就可以确切知道新世界的出生点是什么样的。这个项目通过为某些生成的特征赋予价值,将发现过程游戏化,最终得出一个总体得分。这只是一个小小的多巴胺刺激,加上对真正玩Minecraft的人来说的小潜在价值。