计算机视觉在游戏领域的应用

在三维游戏世界中,角色可以自由地探索、收集资源、制作工具和资源,并随心所欲地建造。计算机视觉技术已经超越了行业界限,为各个领域带来了智能化。尝试将计算机视觉技术应用于Minecraft游戏,使用Roboflow这个端到端的计算机视觉平台。更重要的是,想展示可以将计算机视觉技术应用于其他桌面应用程序或游戏。

首先,需要在Roboflow平台上注册一个免费账户,并创建一个工作空间,这是将存储和标记图像的地方。接下来,决定希望模型检测什么。在这个指南中,将使用Minecraft中的重要方块——树干。记住,模型将检测标记的内容,因此在这个例子中,只标记Minecraft树的木质树干,而不是整棵树。Roboflow提供了游戏数据集供使用,或者可以自己构建。

为了构建计算机视觉的游戏数据集,启动Minecraft或任何游戏,并开始截取屏幕截图。在数据中,要捕捉各种场景,以便模型可以学习变得健壮,不会对变化感到困惑。下面可以看到,为了收集来自各种生物群系的图像,使用了许多不同的世界,因为Minecraft中的每个生物群系都有不同类型的木材。

接下来,使用Roboflow的上传标签将图像导入到Roboflow中。如果提示,将这些图像分配给自己,并点击注释标签。要开始使用Roboflow注释,绘制边界框以识别感兴趣的对象。在这个例子中,围绕每个可见的树干绘制了边界框。对来说,这可能是游戏中的一个物品、一个图标或应用程序上的一个按钮。

这个项目的初始数据集包含了大约30个屏幕截图中所有可见树干的标记图像。可以在Roboflow Universe上找到这个数据集,这是一个由其他Roboflow用户共享的公共数据集和训练模型的中心。

Roboflow的一个方便特性是内置的数据增强工具。数据增强允许对标记的模型应用转换,并生成其他图像,可以使模型更加健壮。点击生成标签开始制作带有增强的数据集。

源图像:确保选择了想要包含在数据集中的图像。训练/测试分割:可以选择多少图像用于训练模型,多少用于测试模型。这些图像是分开的,因为模型不应该在测试图像上进行训练——但不用担心:Roboflow会自动处理这个问题。预处理:在这个例子中,选择将所有图像调整为820x491的大小,因为较小的图像推理速度更快。

增强:对于Minecraft数据集,随机水平翻转图像并创建马赛克。马赛克可以帮助模型识别更小的物体。最后,生成模型。在这个教程中,选择生成的图像数量是标记的3倍。

使用Roboflow生成,最终得到了标记的3倍图像。一旦数据集生成完毕,将看到Roboflow训练选项下的Roboflow训练。点击开始训练开始,模型准备好后会收到电子邮件通知。

一旦模型训练完成,可以直接在浏览器中尝试它。放下一个不在数据集中的图像来可视化模型输出。这张图片的版权归minecraft101.net所有,是通过谷歌图片找到的这张图片。看起来模型是准确的。

恭喜!已经训练了一个计算机视觉模型。在游戏应用程序中使用检测API,Roboflow提供了许多部署选项,可以将模型与自定义代码或各种硬件集成,释放创造力。使用了roboflow-api-snippets存储库中的infer-async.py作为起点。

GitHub - roboflow-ai/roboflow-api-snippets: repo for versioning snippets that show how to use Roboflow APIs

有一个小问题:infer-async.py运行实时推理来自网络摄像头,但希望在Minecraft游戏窗口上运行推理。OBS Studio是一个免费且开源的录制和直播软件。使用OBS,设置了一个虚拟网络摄像头,并将实时屏幕录制传输到虚拟网络摄像头。然后,在infer-async.py中指定脚本使用OBS虚拟摄像头而不是笔记本电脑的硬件摄像头。

使用OBS Studio,可以将任何桌面应用程序流式传输为虚拟网络摄像头。使用自定义Python代码或infer-async.py,可以在该流上运行推理。最后,使用自动化工具如autohotkey(适用于Windows)或Hammerspoon(适用于macOS),可以编程控制应用程序或游戏。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485