一种基于卷积神经网络模型的象棋识别方法与流程

文档序号:17605199发布日期:2019-05-07 20:40阅读:2278来源:国知局
一种基于卷积神经网络模型的象棋识别方法与流程

本发明涉及象棋技术领域,尤其是一种基于卷积神经网络模型的象棋识别方法。



背景技术:

近年来随着计算机的快速发展,对深度学习的研究已经成为了当前的热门领域,中国象棋机器人等娱乐服务型机器人也成为了该领域的研究热点。现有的象棋机器人主要是基于图像处理的中国象棋识别和基于旋转差分的中国象棋识别,但是使用图像处理的方法识别中国象棋的方法中,依赖固定光照强度,同时该识别方法仅仅是使用欧式距离这种算法过于简单,对于棋子摆放角度任意性的问题,该方法难以准确识别棋子文字;而使用旋转差分方法识别中国象棋,效果虽然比使用欧式距离方法好,但由于每个棋子都需要不停地做旋转差分计算,计算重复性大,消耗时间长,同时该方法依赖合适差分角。



技术实现要素:

针对现有技术的不足,本发明提供一种基于卷积神经网络模型的象棋识别方法,该方法能够提高象棋的识别准确性,解决现有技术中难以识别的问题。

本发明的技术方案为:一种基于卷积神经网络模型的象棋识别方法,包括以下步骤:

s1)、利用工业相机采集包含棋子的棋盘图像;

s2)、对获取的棋盘图像进行hough圆检测,以定位棋盘上的每个棋子位置,获取每个棋子区域图像;

s3)、将棋子区域图像的分辨率修改为48*48;

s4)、通过统计颜色阙值范围内的像素个数来判断每个棋子的颜色;

s5)、将棋子区域图像输入训练好的基于卷积神经网络的象棋识别模型中,进行字符识别,输出棋子文字。

进一步的,上述方法中,步骤s2)中,所述的hough圆检测,具体包括以下步骤:

s201)、将获取的棋盘图像的每个像素转换到abr参数空间,其中圆心坐标为(a,b),r表示半径;

s202)、在abr空间中,圆锥面相交的点对应原图中的圆心(a,b)和半径r;

s203)、根据设定的棋子半径阈值范围挑选出符合要求的圆,即为检测到棋子的圆参数;

s204)、根据检测到的圆,画出最小外接矩形以示检测结果,以及为下一步棋子区域获取做准备。

进一步的,上述方法中,步骤s4)中,通过统计颜色阙值内像素点的个数来判断每个棋子的颜色,具体包括以下步骤:

s401)、将棋子区域图转换为hsv颜色空间图像;

s402)、提取颜色空间图像的h分量,即表示范围在0-180,其中,黑色的预设阈值为(30,130),红色的预设阈值为(0,20)和(150,180);

s403)、统计棋子区域图像中属于红色和黑色的阈值范围内的像素点个数,取数量多的作为该棋子颜色。

进一步的,上述方法中,步骤s5)中,基于卷积神经网络的象棋识别模型的训练包括以下步骤:

s501)、构建卷积网络模型;

s502)、以1°为单位旋转棋子,获得360张同一棋子的不同角度图,每个棋子使用同样的方法制作数据集,将所有棋子的数据集分为训练集和测试集,比例为3:1;

s503)、将训练集输入卷积网络模型中,基于keras深度学习框架,使用梯度下降法训练模型,学习率设为0.001,训练次数为10000;

s504)、保存准确率最高的权重参数以及模型结构,从而得到训练好的基于卷积神经网络的象棋识别模型;

s505)、将检测集检测输入训练好的模型中,以检测模型的准确率。

进一步的,步骤s501)中,构建的卷积神经网络模型的包括依次连接的第一卷积层、池化层、第二卷积层、第三卷积层、全连接层、输出层。

进一步的,步骤s504)中,所述的训练好的基于卷积神经网络的象棋识别模型的识别准确率为99.995%以上,识别时间为22ms以下。

本发明的有益效果为:

1、本发明提供的识别方法能够进一步提高中国象棋识别准确率,识别准确率为99.995%以上;

2、本发明基于hsv颜色空间下进行颜色识别,减少了光照强度变化对识别效果的影响;

3、本发明识别速度快,单个棋子识别时间在20ms左右,识别速度相对现有技术进一步提高。

附图说明

图1为本发明棋子定位的效果图;

图2为本发明利用预设的颜色阙值确定棋子颜色的效果图;

图3为本发明构建的卷积神经网络模型的结构图;

图4为本发明模型的训练训练效果图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明:

一种基于卷积神经网络模型的象棋识别方法,包括以下步骤;

s1)、利用工业相机采集包含棋子的棋盘图像;

s2)、对获取的棋盘图像进行hough圆检测,以定位棋盘上的棋子位置,获取每个棋子区域图像,其定位效果图可参见图1,具体包括以下步骤:

s201)、将获取的棋盘图像的每个像素转换到abr参数空间,其中圆心坐标为(a,b),r表示半径;

s202)、在abr空间中,圆锥面相交的点对应原图中的圆心(a,b)和半径r;

s203)、根据设定的棋子半径阈值范围挑选出符合要求的圆,即为检测到棋子的圆参数;

s204)、根据检测到的圆,画出最小外接矩形以示检测结果,以及为下一步棋子区域获取做准备;

s3)、将棋子区域图像的分辨率修改为48*48;

s4)、通过统计颜色阙值范围内的像素个数来判断每个棋子的颜色,颜色识别效果图可参见图2,具体包括以下步骤:

s401)、将棋子区域图转换为hsv颜色空间图像;

s402)、提取颜色空间图像的h分量,即表示范围在0-180,其中,黑色的预设阈值为(30,130),红色的预设阈值为(0,20)和(150,180);

s403)、统计棋子区域图像中属于红色和黑色的阈值范围内的像素点个数,取数量多的作为该棋子颜色;

s5)、将棋子区域图像输入训练好的基于卷积神经网络的象棋识别模型中,进行字符识别,输出棋子文字,其中,基于卷积神经网络的象棋识别模型的训练包括以下步骤:

s501)、构建包括第一卷积层、池化层、第二卷积层、第三卷积层、全连接层、输出层的卷积神经网络模型,该网络模型的结构示意图参见图3;

s502)、以1°为单位旋转棋子,获得360张同一棋子的不同角度图,每个棋子使用同样的方法制作数据集,将所有棋子的数据集分为训练集和测试集,比例为3:1;

s503)、将训练集输入卷积网络模型中,基于keras深度学习框架,使用梯度下降法训练模型,学习率设为0.001,训练次数为10000,训练的效果图参见图4;

s504)、保存准确率最高的权重参数以及模型结构;

s505)、将检测集检测输入训练好的模型中,以检测模型的准确率,对其中部分棋子进行编号,依次为1-10,并对该棋子进行识别,检测其准确率和识别时间,其中每个棋子的识别时间如表1所示,

表1单个棋子的识别时间

从表1中可以看出,单个棋子的识别时间为20ms左右,相对于现有识别机器人其识别速度有较明显的提高。

上述实施例和说明书中描述的只是说明本发明的原理和最佳实施例,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

当前第1页1 2 
网友询问留言 已有1条留言
  • 157765... 来自[中国] 2020年08月24日 21:17
    你好,我需要用你的这个模型,望交流
    0
1