一种智能博弈象棋机器人

2021-05-16 10:33张云飞
科学技术创新 2021年13期
关键词:棋盘棋子样本

任 帅 张云飞

(黑龙江科技大学,黑龙江 哈尔滨150028)

智能象棋机器人以树莓派为控制核心,由棋盘及棋子、光杆、传送带、齿轮、齿条等部分组成。该机器人的操作流程一般通过摄像头来矫正棋盘并且对棋盘的位置进行定位,然后在实时检测棋子的位置的变动,通过玩家象棋在棋盘上的落子的位置,然后输入到象棋的算法中,从而得到接下来得到象棋的应下的坐标位置。之后通过串口通信,把象棋落子的坐标传给stm32单片机,单片机在控制舵机来完成棋子的抓取与放置的动作,从而真正实现了人机交互的智能博弈象棋机器人。

1 智能象棋机器人的设计

本文设计了一种具有人机交互的象棋机器人。该结构主要包括光轴、轴承、滑块、支架等部分。在滑块上存在四个直线轴承以方便光杆的运动,在电机架上装有两个步进电机用以控制光杆的移动,在机架旁边装有两个支座用以支撑整个机械结构。在滑块上部放有一个接头,并在光杆末尾也放置一个接头用以安置光杆。在前部接头上放置齿轮和齿条,通过驱动舵机来使衔铁装置上下运动。设计的智能象棋机器人通过采用带传动和导轨实现x,y 轴的运动,从而使棋子达到准确位置。通过齿轮齿条传动实现拾棋子和放棋子的动作。智能象棋机器人整体外部侧面结构示意图如图1 所示。

图1 整体外部结构图

2 智能象棋机器人的使用原理和流程

2.1 机器视觉部分

在树莓派上,移植使用opencv 做视觉处理部分,主要负责棋盘定位、局面判断部分工作。

2.1.1 霍夫圆变换理论(Paul Hough)

Paul Hough 于1962 年提出一种简单的检测图形的算法,并将其命名为Hough 变换。 Hough 变换将图像空间中的图形检测对应为参数空间的投票统计,将图像空间和参数空间形成映射关系。通常将参数空间称作Hough 空间,投票的维数取决于检测图形的参数的个数。

结合opencvAPI 实现对圆形目标的定位,相对于色彩匹配、模板匹配、深度学习等方式定位棋盘有着操作简单、稳定性高、计算代价低、执行效率高、可用于嵌入式平台等优势。(图2)

图2 棋盘定位图

2.1.2 仿射变换

仿射变换是一种由二维坐标到二维坐标之间的线性变换,保持二维图形的“平直性”(即变换后直线还是直线,不会打弯,圆弧还是圆弧)和“平行性”(指保二维图形间的相对位置关系不变,平行线还是平行线,相交直线的交角不变)。

利用仿射变换将已定位的四个定位点投影到方形矩阵中,避免了摄像头畸变、摄像头晃动、俯视角度对图像的影响,提高了运行过程中的稳定性及识别准确性。

2.1.3 HSV 颜色空间

HSV 颜色空间反应出了颜色的直观性和人类的视觉感知颜色完全吻合,其中颜色的种类用色调H 表达,色调H 的取值范围为0°~360°,红色用0°表示,绿色用120°,蓝色用240°表示;颜色与光谱色程度相似就是饱和度S,饱和度S 表示颜色接近光谱色的程度。光谱色所占的比例越大,颜色接近光谱色的程度就越高,颜色的饱和度也就越高;颜色的明亮度就是V,明亮度表示颜色明亮的程度,所以色度和明亮信息能够被HSV 颜色空间很好的区分。

通过霍夫圆变换对棋子进行识别,后通过将棋子图像提取转为HSV 颜色空间,避免了不同光线条件下对颜色识别的影响,提高了设备的适应能力。

2.2 算法方面部分

2.2.1 对象棋中的文字进行识别,采用knn(k 近邻分类算法)算法

knn 算法原理:存在一个样本数据集合、每一个样本数据都存在标签。在输入没有标签的新数据之后,将新数据的每个特征与样本集数据的对应特征进行比较,然后提取出样本集中最相似的分类标签。通常来说,我们只选择样本数据集中前k 个最相似的数据,最后,选择这k 个相似数据中出现次数最多的分类,作为新数据的分类。kNN 输入需要特征矩阵,一般是固定大小的二值图像。

文字识别流程:

(1)读取样本手写体txt 文件,转化为1X1024 向量数。

(2)比较测试数据和样本数据集的距离,返回k 近邻中最相似的标签。

(3)比较标签与测试结果,计算正确率。

2.2.2 采用随机森林算法对每一个棋子按照正确的走法向量,向后预测32 层

随机森林是指利用多棵决策树对样本进行训练并预测的一种算法。随机森林在运算量没有显著提高的前提下提高了预测精度,并且对多元公线性不敏感,结果对缺失数据和非平衡的数据比较稳健,可以很好地预测多达几千个解释变量的作用。随机森林基本单元是决策树,它的本质属于机器学习的集成学习方法,它相当于集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出。

具体实现过程如下:

(1)原始训练集为N,应用bootstrap 法有放回地随机抽取k个新的自助样本集,并由此构建k 棵分类树,每次未被抽到的样本组成了k 个袋外数据。

(2)设有mall 个变量,则在每一棵树的每个节点处随机抽取mtry 个变量,然后在mtry 中选择一个最具有分类能力的变量,变量分类的阈值通过检查每一个分类点确定。

(3)每棵树最大限度地生长, 不做任何修剪。

(4)将生成的多棵分类树组成随机森林,用随机森林分类器对新的数据进行判别与分类,分类结果按树分类器的投票多少而定。

2.2.3 借鉴贪心算法通过对不同的棋子、不同的局面对棋子赋予分值,预测结束后推演出分值最佳的走法

贪心算法总是做出在当前看来最好的选择,也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的局部最优选择。贪心算法的基本思路是从问题的某一个初始解出发逐步逼近给定的目标, 以尽可能快地求得更好的解。(图3)

图3 坐标变换图

2.3 运动部分

2.3.1 脉冲生成算法:控制步进电机

在原有的PWM 基础上,在为其添加溢出中断的功能,没发出一周期的脉冲,就会发出一个定时器中断信号,在中断服务函数中,对其计数,当达到预期值的时候,关闭定时器。这样一个有固定个数的脉冲就可以精确的发出。

2.3.2 具体实现方式

通过串口实现上位机(树莓派)与下位机(STM32)的数据传输,通过串口读到x,y 轴需要运动的距离,计算出步进电机需要输入的脉冲数,由STM32 发出脉冲控制两个电机的运动。电机的正反向旋转决定运动的方向。

3 智能象棋机器人的市场分析

该作品不仅能满足一般的娱乐需求,而且有一定的应用价值。当今社会城市老人的孤独问题越来越受到社会的关注,象棋机器人正可与老人对弈,从一定程度上解决这个社会问题。同时,象棋机器人的图像识别算法和机械控制算法为机器视觉和机器人控制提供了新的参考。另外,该作品还可用于教学演示及科技展览,尤其适用于激发中小学生对科学的兴趣爱好。

4 结论

目前博弈机器人已经有了一定程度的发展,国外已有相关产品上市,国内也已经开始相关方面的研究,并取得了一些成果。2004 年我国首台五子棋博弈机器人问世,如今在中国科技馆新馆、郑州科技馆等科技馆内已有博弈机器人展出,然而这些机器人仍有体积庞大、成本过高等问题存在。该作品在于将博弈机器人小型化、智能化,使其不仅是陈列在博物馆的庞然大物,还是能够真正为家庭提供娱乐的休闲用品。

猜你喜欢
棋盘棋子样本
棋子多少颗
规划·样本
摆棋子
人大专题询问之“方城样本”
随机微分方程的样本Lyapunov二次型估计
巧移棋子
棋盘人生
棋盘里的天文数字
棋盘疑案
“官员写作”的四个样本