美国国际象棋大师、第十一届国际象棋世界冠军鲍比·菲舍尔曾说过:“棋盘上最重要的是好棋。”
他说起来容易。但是,如果你是新手,或者想变得更好,你怎么知道你正在做的动作实际上是好的呢?如果你能分析你的比赛,一场接一场,那不是很棒吗?
为了解决这个问题,本月最新的 Jetson 项目 winners 开发了 LiveChess2FEN ——一个在 NVIDIA Jetson Nano 上实时优化的自动数字化棋盘配置的框架。
LiveChess2FEN 创建者 大卫·马拉森·金塔纳 、 阿尔贝托 A 。德尔巴里奥 和 Manuel Prieto-Matias 在 paper 状态下表示:“这是第一次尝试将国际象棋数字化框架部署到嵌入式平台上,获得与其他方法类似甚至更好的执行时间,这些方法至少使用了一台中端笔记本电脑。”。
LiveChess2FEN 使用 福赛斯 – 爱德华兹符号( FEN ) 对国际象棋游戏进行数字化,这是一种标准的表示法,使用代表国际象棋游戏中特定棋盘位置的字母和数字。该项目是为业余玩家或比赛而创建的,其中一个网络摄像头会持续监视棋盘,并检查棋盘上任何棋子的位置是否发生了变化。视频通过学习模型进行流式传输,并以新字符串形式返回任何变化的板位置。
在 NVIDIA 开发者论坛上, 开发者表示 ,“之前的工作已经显示出了有希望的结果,但最先进技术的识别准确性和延迟仍需要进一步的增强,以实现实用且经济的部署。”
此外,目前的硬件解决方案,如专用电路板或机械臂,可能成本高昂,而且难以部署。使用 Jetson 纳米 ,团队找到了解决这些缺点的方法。
问题可分为 两个主要部分 。首先是识别棋盘及其方位,然后识别棋子及其精确位置。
为了应对这一挑战,该团队使用了多种软件,包括 TensorFlow 上的 Keras API ,来定义和训练卷积神经网络( CNN )来进行试件分类。为了训练他们的模型,他们使用了两组有标签的棋子数据集,其中包括近 55000 张图像。
他们还使用了 ONNX 运行时、 TensorRT 、 ONNX-TensorRT 和几个 Python 库。为了帮助监控 Jetson Nano 上的计算资源使用情况,他们使用了系统监控实用程序 jtop 。
使用 Jetson Nano 并使用 ONNX Runtime 和 TensorRT 优化 CNN ,他们将推理延迟从 16.38 秒减少到了 3.84 秒。
将特定领域的知识添加到模型的推理中,在准确性方面提供了优势。通过在 TensorRT 上测试不同的 CNN ,该团队获得了从 6 秒到 0.46 秒不等的延迟时间。精度和速度之间有一些折衷,如下图所示。
图 1 :在 NVIDIA Jetson Nano 上测量的检测棋盘状态的推理时间和精度。
然后,该团队设计了一种方法,通过计算方格是否与人工智能之前检测到的方格对齐,来检查棋盘上的棋子是否在同一位置。这有助于避免在观察棋盘的基础上不断重新计算,以便更快地确定棋子的坐标。通过检查棋盘上的棋子是否在上一次推断(需要 150 毫秒)后移动,团队发现推断时间有了巨大的改进。
除了专用的 NVIDIA GPU ,该系统还集成了四核 ARM CPU ,能够执行检测棋盘所需的顺序计算。十多年来,这种体系结构已成功地广泛应用于与图像处理相关的任务中。
其结果是一个框架,可以在不到 1 秒的时间内从图像中自动数字化国际象棋的位置,对棋子进行分类的准确率为 92% ,对棋盘上的变化进行检测的准确率为 95% 。
LiveChess2FEN 框架的源代码在 GitHub 中提供了开源许可证。
关于作者
Jason Black 是 NVIDIA 的自主机器营销和通信高级经理。作为过去 25 年的作家和编辑,他喜欢在流行语背后寻找故事的核心。看到机器人 MIG 把他带到哪里,他很兴奋。
审核编辑:郭婷
-
cpu
+关注
关注
68文章
10858浏览量
211654 -
NVIDIA
+关注
关注
14文章
4983浏览量
103013 -
人工智能
+关注
关注
1791文章
47229浏览量
238340
发布评论请先 登录
相关推荐
评论