在OAK-D-Lite上部署自定义视觉模型

在Roboflow,一直是OAK设备生态系统的长期支持者,迫不及待地想看看开发者们将如何利用新的OAK-D-Lite设备构建应用。虽然本例中专注于在21点游戏中计算牌数,但希望将这篇文章视为如何在OAK-D-Lite上部署自定义视觉模型的指南。最棒的是,即使OAK-D-Lite还未从Kickstarter发货,也可以通过测试托管的API来开始构建模型和应用程序,然后在将技术带到边缘之前进行测试!

黑杰克中的卡片计数简介

21点是一种在赌场流行的游戏,玩家有一组离散的决策来“停牌”或“要牌”,权衡改善手牌的好处与超过21点并“爆牌”的风险。通常情况下,如果玩完美的21点,只能达到与赌场几乎收支平衡的预期价值点。也就是说,从概率上讲,21点是一个输钱的游戏。但如果能够跟踪之前已经发过的牌,就可以将赔率向倾斜。在脑海中跟踪一长串牌是非常困难的——那么为什么不让OAK设备为做这件事呢?

Roboflow Universe上的扑克牌数据集

首先,需要一个数据集来表示希望OAK-D-Lite在生产环境中检测的对象。幸运的是,Ritesh在Augmented Startups已经为组装了他的扑克牌数据集,并在Roboflow Universe上与分享。有了这个数据集,将能够训练一个计算机视觉模型来检测落在桌面上的每张扑克牌的数字和花色。

RoboflowUniverse上的扑克牌模型

会发现,在RoboflowUniverse上,已经有一个模型在扑克牌数据集上进行了训练,并有各种部署目的地。在Roboflow上进行训练可以为数据集优化计算机视觉模型,并将其转换为选择的部署目的地,包括OAK-D-Lite!

在托管API上测试卡片模型

在转向OAK设备之前,应该在一些示例图像上测试模型,使用托管的扑克牌API。在那里,可以发布一个示例图像并查看预测响应。

Example Image: (source) Example Response: Example Response JSON: { "predictions": [ { "x": 1093, "y": 908, "width": 74, "height": 168, "class": "QH", "confidence": 0.885 }, { "x": 822, "y": 303.5, "width": 74, "height": 163, "class": "QH", "confidence": 0.884 }, { "x": 299, "y": 296, "width": 74, "height": 172, "class": "KH", "confidence": 0.873 }, { "x": 734, "y": 822.5, "width": 62, "height": 131, "class": "KH", "confidence": 0.66 } ] }

将卡片模型部署到OAK-D-Lite

到目前为止,模型一直在云服务器上运行。要将此模型嵌入OAK-D-Lite设备中,需要将其转换为在MyriadX上运行,并编写预处理和后处理例程。幸运的是,Roboflow为处理了这些步骤!要启动推理服务器,只需要在Roboflow上训练模型后,在主机设备上运行以下命令:

Stand up OAK Server: sudo docker run --rm \ --privileged \ -v /dev/bus/usb:/dev/bus/usb \ --device-cgroup-rule='c 189:* rmw' \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -p 9001:9001 \ roboflow/oak-inference-server:latest Infer from OAK Server - GET: http://localhost:9001/[YOUR_ENDPOINT]?access_token=[YOUR_ACCESS_TOKEN] Response from your OAK-D-Lite at realtime speeds: { "predictions": [ { "x": 1093, "y": 908, "width": 74, "height": 168, "class": "QH", "confidence": 0.885 }, { "x": 822, "y": 303.5, "width": 74, "height": 163, "class": "QH", "confidence": 0.884 }, { "x": 299, "y": 296, "width": 74, "height": 172, "class": "KH", "confidence": 0.873 }, { "x": 734, "y": 822.5, "width": 62, "height": 131, "class": "KH", "confidence": 0.66 } ] }

更多OAK服务器文档。

进入赌场

现在已经在OAK-D-Lite上进行了卡片模型的推理,需要开始编写逻辑来计数卡片并推荐策略,这是实现和开发中的一次有趣的冒险。查看这个视频,其中Roboflow CTO Brad Dwyer在几个小时的现场YouTube黑客马拉松中做到了这一点。据所知,它在本地赌场为他工作得相当好🤑。

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