基于卷积神经网络的棋子定位和识别方法 下载: 1330次
1 引言
中国象棋是一款经典游戏,其变化多端,趣味无穷,是中华文化的精粹之一。随着机器人技术的快速发展,象棋机器人的智能化程度不断提高。针对象棋机器人的视觉部分,棋子定位和识别尤为重要。
棋子定位决定了机器人是否可以准确地抓取棋子,完成走子。Li等[1]采用传感器模式,以棋盘作为传感器来定位棋子,这种模式响应快,准确度高,但智能性低、通用性差。类似的还有刘飞等[2]的射频方法。许丰磊等[3-5]均依靠棋盘直线检测或交点检测,无法脱离棋盘定位棋子,且定位精度不高。娄联堂等[6]通过图像减法定位棋子,但该方法对相机和棋盘的稳定性要求高。Wu等[7]利用形态学滤波和Hough圆检测定位棋子,该方法在光照的强干扰下, Hough检测的时间增加,效率降低。朱一峰[8]对图像去噪后,根据像素特征统计每一个棋子的像素累加值,再通过调整阈值来分割棋子,该方法在光照不断变化的环境下,需要频繁调整阈值,适应性较差。郭晓峰等[9]利用像素特征粗定位,再利用Hough圆检测二次定位,该方法在提高准确度的同时,增加了算法运行时间,而且棋子在选材上突出了棋子边缘,不是生活中对弈的棋子,降低了方法的普适性。
棋子识别决定智能博弈算法是否可以准确地计算走棋策略。棋子上的文字具有角度任意性,而且不同的字体,其特征也不同,这样加大了棋子识别的难度。目前,针对象棋文字的识别研究不多。郭晓峰等[9]利用旋转差分法识别棋子。翟乃强[10]使用过轮数法统计文字特征。冯元华等[11]使用文字连通数统计文字特征。党宏社等[12]利用ORB(ORiented Brief)提取文字特征识别棋子。郭建欣等[13]利用Hu的7个不变距作为文字特征进行训练,识别棋子。文献[ 9-13]中,由于棋子文字的复杂性,特征提取方法不能较好地处理字体多变的棋子文字,在棋子字体发生变化时,需要人工定义重要的特征点位置或调整文字旋转角度,极大地降低了对不同棋子字体的适用性。王殿君等[14-15]采用BP(back propagation)神经网络对棋子进行识别,但该网络收敛速度慢,网络结构的选择依靠经验,权值不能共享,具有网络训练失败的可能性。
针对上述问题,从棋子定位和棋子分类识别两方面入手进行优化。首先,在棋子定位上,由于传统的图像处理方法从速度和算法复杂度上优于卷积神经网络的目标检测,且准确度高,故本文根据文字像素特征,将棋子按颜色分别二值化,再应用本文提出的二值图像滤波算法对图像进行去噪,并绘制轮廓、寻找最小外接圆,定位棋子。在棋子的分类识别上,与传统的文字识别方法相比,卷积神经网络的目标分类算法准确度高,在字体样本不同的情况下,不需要人工反复定义文字特征,而且在模型训练完成后,可以对多种常见棋子的文字字体进行识别,泛化能力更好。卷积神经网络应用局部感知野降低参数,收敛速度快,而且权值共享,优于BP神经网络。所以本文选择传统图像处理和卷积神经网络相结合的新方法对棋子定位和识别。
2 整体结构
首先,对采集的棋局图像进行棋子的分割和定位;其次,将定位后的棋子图像作为数据输入,输入至本文的卷积神经网络进行棋子的分类和识别,并将识别结果标注在图像上。整体算法流程图,如
3 棋子定位
棋子定位算法流程,如
3.1 图像预处理
由于受空间的限制,相机的光轴不垂直于棋盘,为了降低棋子的定位误差,需要对图像进行预处理。
首先,采用双线性插值法对图像进行密集透视变换,保持承影面上投影几何图形不变。双线性插值是在
再在
式中:
其次,消除背景对棋子分割的干扰,减少处理时间,增加定位精度,对透视变换后的图像设置ROI(Region of Interest),如
图 3. 棋盘预处理。(a)透视变换图;(b) ROI图
Fig. 3. Chessboard pretreatment. (a) Perspective transformation picture; (b) ROI picture
3.2 棋子定位
3.2.1 棋子分割
象棋棋子具有两个显著特征:形状和文字颜色。若直接用Hough圆检测分割棋子,则计算量大,且检测不准确。所以选择文字颜色特征作为分割依据。
本文采用HSV颜色模型,其中
3.2.2 改进二值图像滤波算法
根据某一种颜色特征分割棋子后,在二值图像上会产生另一种颜色的噪声,造成过分割。因此需要对二值图像进行滤波,所提滤波算法如下。
1) 标记图像中的各个连通区域。假如当前像素值为0,就移动到下一个位置扫描。假如当前像素值为1,检查它左边和上边的两个邻接像素(这两个像素一定会在当前像素之前被扫描到)。考虑两个像素值和标记的组合有4种情况:(a)它们的像素值都为0,此时给当前像素一个新的标记(表示一个新的连通域的开始);(b)它们中间只有一个像素值为1,此时当前像素的标记等于像素值为1的标记;(c)它们的像素值都为1且标记相同,此时当前像素的标记等于该标记;(d)它们的像素值为1且标记不同。将其中的较小的值赋给当前像素,之后从另一边回溯到区域的开始像素为止,每次回溯再执行上述4个判断步骤。这样可以保证所有的连通域都被标记出来。
2) 设定阈值
根据(4)式,如果
3.2.3 棋子定位
棋盘进行滤波后,需要定位棋子的像素坐标。因此,本文提出了一种棋子定位算法。
1) 图像线性混合。将棋子分割并滤波后的两幅二值图像叠加,如
2) 棋子膨胀运算。将棋子所在区域与10×10的核进行卷积,求局部最大值,即
式中:dst为目标图像,src为源图像,element(·)为自定义卷积核,参数包含核的形状、大小和参考点,(
3) 寻找最小外接圆。由于圆具有唯一确定性,因此用最小外接圆包围膨胀运算后的棋子轮廓,从而得到用绿色标识的棋子圆心坐标,即棋子的像素位置,如
通过上述棋子定位算法,可以简单、高效、准确地快速确定棋子的像素坐标,不需要多次修正棋子坐标。
4 基于卷积神经网络(CNN)的棋子识别
因为棋子上字符的复杂性,其传统特征提取方法不能处理多变的汉字外形,而且需要专业人工定义特征点位置,没有统一标准,所以本文选择基于CNN的棋子识别方法,自动生成其特征,进行网络训练,完成棋子的识别。
在第3节中,已经用红色圆准确定位出棋子。本节将
4.1 卷积神经网络(CNN)
卷积神经网络(CNN)是一种多层的有监督的特征学习网络,具有极强的适应性,善于挖掘数据的局部特征,提取全局训练特征和分类。CNN利用局部感知和神经元之间的权值共享来降低网络模型的复杂度,降低权值的数量,从而加快网络的训练和学习速度,并且使用反向传播算法,使得网络更加收敛,得到更好的训练模型。
CNN的卷积层和池化层是实现卷积神经网络特征提取功能的核心模块。该网络模型通过采用梯度下降法优化损失函数,找到全局最优解。通过频繁的迭代训练可以提高网络精度。CNN的低层由卷积层和最大池化层交替组成,高层是全连接层中对应传统多层感知器的隐含层和逻辑回归分类器。其中,第一个全连接层的输入是由卷积层和子采样层进行特征提取得到的特征图像;最后一层输出层是一个分类器,可以采用逻辑回归、Softmax回归,甚至支持向量机(SVM),对图像进行分类。
4.2 网络结构设计
目前常用的CNN模型有AlexNet[16]、VGG[17]、LeNet[18]、GoogleNet[19]等。其中AlexNet网络模型网络数较少,精度高;使用Dropout、Data augmentation(数据扩充),避免过拟合;使用局部归一化(LRN),有助于增加泛化能力。因为本文的数据集相对较少,每类的样本相对单一,要尽量避免过拟合,所以,本文选择AlexNet模型,对其改进并用于象棋棋子的分类识别。本文网络结构如
网络结构配置信息和数据,如
表 1. 网络结构配置信息和数据(Conv1~Conv4 layout data)
Table 1. Configuration information and data of network structure (Conv1-Conv4 layout data)
|
表 2. 网络结构配置信息和数据(FC1~FC3 layout data)
Table 2. Configuration information and data of network structure(FC1-FC3 layout data)
|
最后选择Softmax分类器进行棋子分类识别。它是以多项式分布为模型进行建模。假如网络输出为
5 实验与结果分析
5.1 棋子数据集
5.2 实验结果与分析
5.2.1 棋子定位实验利用本文的棋子定位方法,在HSV值不变的情况下[红色
表 3. 棋子定位实验
Table 3. Location experiment of chess pieces
|
表 4. 实验结果对比
Table 4. Comparison of experimental results
|
5.2.2 棋子识别实验
使用本文的CNN网络结构对22400个样本进行训练,迭代次数为20;对5600个样本进行验证,其训练和验证准确率、训练和验证损失值,如
任意抽取4类字体的棋子,任意角度的摆放在棋盘上,进行识别,并将识别结果标注在指定位置。所提方法的识别准确率平均在98.59%左右。4类字体棋子的部分实验结果,如
选取杜俊利等[5]中的实验样本为字体一,郭晓峰等[9]中的实验样本为字体二,字体三、四为4类字体中的其他两种。应用杜俊利等[5]、郭晓峰等[9]中给出的实验参数,与本文方法作比较,棋子识别准确率的结果如
图 9. 所提方法的训练和验证结果。(a)训练和验证准确率;(b)训练和验证损失值
Fig. 9. Training and verification results of proposed method. (a) Training accuracy and validation accuracy; (b) training loss and verification loss
图 10. 基于CNN的棋子识别结果。(a)部分实验结果一;(b)部分实验结果二
Fig. 10. Recognition results of chess pieces based on CNN. (a) Partial experimental results 1; (b) partial experimental results 2
6 结论
采用传统的图像处理和文字识别方法时,中国象棋棋子的定位算法复杂,识别方法泛化能力较差、精确度较低,为此提出一种基于棋子颜色特征的分割方法和改进的二值图像滤波算法,以及一种基于卷积神经网络的棋子识别方法。实验表明,该方法的平均定位误差为0.51 mm,平均定位误差为0.212 s;对4类字体棋子的识别正确率达到98.59%。实验证实了本文方法在棋子识别和定位中的有效性和泛化性。
[2] 刘飞, 吕新广. 药品及其包装对超高频RFID标签性能的影响[J]. 重庆邮电大学学报(自然科学版), 2017, 29(4): 563-568.
[3] 许丰磊. 象棋机器人视觉算法与智能控制软件的研究[D]. 哈尔滨: 哈尔滨工业大学, 2006: 9- 13.
Xu FL. The research of the vision algorithm and intelligent control software for chess robot[D]. Haerbin: Harbin Institute of Technology, 2006: 9- 13.
[4] 肖克先. 象棋机器人嵌入式视觉系统的研究与开发[D]. 北京: 北方工业大学, 2010: 15- 26.
Xiao KX. Research and development of embedded vision system of chess robot[D]. Beijing: North China University of Technology, 2010: 15- 26.
[5] 杜俊俐, 张景飞, 黄心汉. 基于视觉的象棋棋盘识别[J]. 计算机工程与应用, 2007, 43(34): 220-222, 232.
[6] 娄联堂, 钱磊, 段汕, 等. 基于视频图像理解的中国象棋棋子识别[J]. 中南民族大学学报(自然科学版), 2014, 33(2): 117-122.
[7] WuG, TaoJ. Chinese chess recognition algorithm based on computer vision[C]∥China Control and Decision-Making Conference, 31 May-2 June 2014, Changsha, China. New York: IEEE, 2014: 3375- 3379.
[8] 朱一峰. 象棋机器人视觉识别算法研究[J]. 江汉大学学报(自然科学版), 2013, 41(3): 51-56.
[9] 郭晓峰, 王耀南, 周显恩, 等. 中国象棋机器人棋子定位与识别方法[J]. 智能系统学报, 2018, 13(4): 517-523.
[10] 翟乃强. 改进的中国象棋棋盘识别方法[J]. 计算机应用, 2010, 30(4): 980-981.
[11] 冯元华, 王思华, 柳宁, 等. 机器视觉技术在博弈智能机器人设计中的应用[J]. 计算机工程与设计, 2009, 30(14): 3371-3373,3379.
[12] 党宏社, 张超, 庞毅, 等. 基于ORB算法的象棋快速识别和定位系统研究[J]. 科学技术与工程, 2017, 17(7): 52-57.
[13] 郭建欣, 陈文燕. 筛选极坐标投影幅值特征的象棋定位与识别[J]. 科学技术与工程, 2018, 18(21): 268-275.
[14] 王殿君. 基于视觉的中国象棋棋子识别定位技术[J]. 清华大学学报(自然科学版), 2013, 53(8): 1145-1149.
[15] 段云涛, 李倩, 申玮. 基于视觉的人机交互下棋系统中棋子定位及识别技术研究[J]. 计算机与数字工程, 2015, 43(8): 1416-1418, 1485.
[17] Cao KC, YangH, JiangB. Formation tracking control of nonholonomic chained form systems[C]∥2013 10th IEEE International Conference on Control and Automation (ICCA), 12-14 June 2013, Hangzhou, China. New York: IEEE, 2013: 846- 851.
[18] ZhouY, Dong XW, LuG, et al. Time-varying formation control for unmanned aerial vehicles with switching interaction topologies[C]∥2014 International Conference on Unmanned Aircraft Systems (ICUAS), 27-30 May 2014, Orlando, FL, USA. New York: IEEE, 2014: 1203- 1209.
Article Outline
韩燮, 赵融, 孙福盛. 基于卷积神经网络的棋子定位和识别方法[J]. 激光与光电子学进展, 2019, 56(8): 081007. Xie Han, Rong Zhao, Fusheng Sun. Methods for Location and Recognition of Chess Pieces Based on Convolutional Neural Network[J]. Laser & Optoelectronics Progress, 2019, 56(8): 081007.