2. 机器人视觉感知与控制技术国家工程实验室,湖南 长沙 410082
2. National Engineering Laboratory for Robot Visual Perception and Control Technology, Changsha 410082, China
随着社会的不断发展和科技的不断进步,以中国象棋机器人为代表的娱乐服务型机器人,逐渐成为机器人研究领域的热点之一。
中国象棋机器人研究开始于21世纪初,2004年上海交通大学黄立波等[1]利用开放式控制器,成功开发了国内第一台中国象棋对弈机器人,同期多种对弈机器人相继诞生[2]。早期的中国象棋机器人棋子的定位与识别采用非视觉方式,如特制不同电阻值[3-4]或光敏电阻[5]的棋子与设计电子棋盘的方式进行棋子的定位与识别,类似地还可采用射频[6]等方法。这些非视觉的识别法都有:系统需特殊设计定制,适应性不强等缺点。随着机器视觉技术的发展,棋子的定位与识别也逐渐采用机器视觉的方法。
在棋子定位问题上:大多依靠棋盘间接定位,例如,许丰磊[7]对棋盘内90个小区域进行轮廓跟踪与提取,进而判断棋子位置;肖克先等[8-9]、杜俊俐等[10-11]通过对棋盘十字交点处进行检测。以上棋子定位方法均依靠棋盘直线检测或交点检测,无法做到脱离棋盘定位,且定位精度不高。
在棋子识别问题上:棋子识别实质就是字符识别,其研究相对比较成熟,但目前字符识别研究和应用最多的领域是汽车车牌的识别[12-13]。与传统字符识别不同,象棋棋子识别具有旋转任意性,目前针对中国象棋棋子字符的识别研究不多。冯元华[14]和莫妙桃[15]使用文字连通数、字符年轮统计等特征进行字符识别,但其需要预先对棋子字符进行特征统计,步骤繁琐且正确率基本在83%左右。随着计算机硬件和机器学习的发展,更多人尝试使用BP神经网络[16]、深度学习[17-18]等进行棋子识别。但机器学习或深度学习需要的训练样本大,训练时间长,实时性不强,更换棋子后同样需要重新训练,步骤复杂繁琐。
针对上述棋子定位中存在的依靠棋盘定位、定位精度不高等问题,本文提出了一种基于最小外接圆二次定位棋子定位方法,能够快速高精度实现棋子定位。针对当前传统文字识别方法识别率低,而基于机器学习的字符识别方法,存在训练时间长、实时性不强的问题,本文提出了一种旋转差分识别算法,实现棋子快速精准识别。
1 系统结构我们自主搭建了象棋机器人的硬件平台,其结构示意图如图1所示。系统主要由URAM四轴机械臂及相连的摄像机、计算机、象棋棋盘和辅助光源组成,该系统可实现两个功能:1)开局阶段自动摆棋功能;2)人机对弈功能。该系统有两个工作区域:摆棋区域和棋盘区域。本文以摆棋区域内棋子的定位与识别进行研究。
Download:
|
|
本文算法整体流程图如图2所示。
Download:
|
|
一次定位与预处理整体流程如图3所示。
Download:
|
|
首先对摆棋区域进行图像采集,本系统使用普通家用网络摄像头,图像分辨率为:1 280像素×720像素,测试所用棋子的直径为15 mm。
1)圆检测一次粗定位
棋子定位问题就是圆检测问题。圆检测算法主要有:最小二乘法[19-20]、多随机圆拟合度评估[21]等拟合方法。这类方法圆检测准确度高,运算量少,但其对噪声敏感,且不能一次检测多个圆。还有Hough变换[22]等投票(聚类)方法。这类方法将样本点映射到参数空间,用累加器或者类聚的方法来检测圆。这类方法对噪声不敏感,且可以一次检测多个圆,但其计算量大运算时间长。
本系统运行背景较复杂,有外界因素影响,因此需要圆检测具有较强的鲁棒性,且需要一次性检测出多个圆形。系统对于棋子的定位精度和识别准确度要求很高,但对于运行时间要求不高,因此综合以上考虑,本文使用Hough变换进行棋子一次粗定位。
对采集到图像进行Hough变换的粗定位,定位效果图如图4所示,并可得到粗定位圆心坐标。
Download:
|
|
2)棋子分割
随后根据该定位坐标基于区域的图像分割将棋子前后景分离和棋子分割。
3)颜色识别
将RGB模型图片转换为HSV模型,随后对HSV模型中的各个值进行统计,寻找红、黑颜色的特征。
经过实验后得到:本文所使用棋子,红色H(H:hue)值范围为170~180;黑色H值范围为103~106,利用红色和黑色颜色的色调不同取值,就可将红色和黑色的棋子图像进行识别。
4)字符分割
由棋子图像的灰度直方图:由图5可知,棋子图像的灰度分布具有很大离散性,即棋子背景灰度值较集中为一种灰度值,黑色或红色字符集中为另一灰度值,且两者相差较大。
Download:
|
|
因此采用均值阈值分割进行二值化处理,首先计算图像像素灰度均值:T之后根据均值选定阈值进行分割:
$I\left( {x,y} \right) = \left\{ \begin{array}{l}255, \quad I\left( {x,y} \right) < KT\\0, \quad \text{其他}\end{array} \right.$ | (1) |
式中K为比例系数。通过实验确定K取0.75时,字符分割效果较好。
2.2 棋子二次精确定位系统工作环境较为复杂,干扰多,且所用棋子较小(仅为15 mm),成像分辨率低。因此粗定位效果,部分棋子定位效果较差如图6所示。需要对棋子进行定位修正以确保定位精准。
Download:
|
|
本文提出的一种基于字符最小外接圆的定位修正方法的流程图如图7所示。
Download:
|
|
二次定位算法步骤:
1)图片载入及预处理。由一次粗定位得到原始字符图如图8(a),及粗定位圆心如图8中红色圆点表示。预处理得二值化字符如图8(b)。
Download:
|
|
2)寻找最大轮廓。对二值化字符进行形态梯度运算如图8(c)。对形态梯度图进行轮廓提取,依次遍历所有轮廓并计算轮廓面积,保留面积最大的轮廓,如图8(d)所示。
3)寻找轮廓外接圆。由于圆具有稳定性和唯一性,因此寻找字符最大轮廓的最小外接圆如图8(e),外接圆圆心如图中绿色圆点所示。
4)修正圆心。由最小外接圆,重新截取字符图片如图8(f),保证字符位于图像中心位置,为后续识别工作做准备。同时由两次圆心坐标对比可得定位误差,并对粗定位圆心坐标进行修正,从而得到棋子精确的圆心坐标。
2.3 字符识别棋子识别本质上就是字符识别,但不同于传统的字符识别,在摆放过程中棋子可能旋转任意角度,而造成字符倾斜,而传统基于像素的模板匹配识别不具有旋转不变性。如何克服圆形棋子的旋转特性是中国象棋棋子识别的难点。本文提出了一种旋转差分识别算法,其具体流程图如图9所示。
Download:
|
|
载入已制备模板图,将待识别图与其做像素差分如图10所示,并保留差分值。随后,将模板旋转a°后重复上述操作,直至360°旋转完毕为止。统计各个旋转角度的像素差分值,保留其中的最小值,记为Bn(n为模板序号,为1, 2,
然后再和第2个模板进行上述操作。依次和所有7个模板进行上述操作后,则最小的Bn对应的字符,即为待识别棋子的识别结果,随即可得其对应的棋盘的位置。识别效果如图10所示。
Download:
|
|
本系统硬件平台如图11所示,摄像机为普通家用网络摄像头,分辨率为:1 280像素×720像素。象棋棋子直径为:15 mm。计算机 CPU 为intel core i5—4 200 M,主频 2.5 GHz,通过软件开发平台Visual Studio 2012和Open CV2.4.9编写C + +程序,对棋子进行了定位与识别算法验证。
Download:
|
|
利用本系统采集4张摆棋区域的图像,每张图片中包含32个棋子,共128个棋子。随后对每张棋子圆心进行人工标定,将检测定位坐标和标定坐标对比,得到定位误差,如表1 所示。
两次定位误差为欧氏距离D,单位为像素(pixel)。定义误差修正率:
${R_{{\rm{er \cdot correction}}}} = \frac{{{D_{{\rm{1st}}}} - {D_{{\rm{2nd}}}}}}{{{D_{{\rm{1st}}}}}}$ | (2) |
该参数可以反映定位精度的提升程度。由式(2)可知,定位精度提升均在40%以上,大部分在60%或70%以上,最高可达80%。
本系统使用棋子直径为15 mm,通过比例换算,可以得到最终实际定位误差。实验结果表明:棋子定位精度均在0.50 mm以上,最高定位精度达到0.11 mm,定位精准。棋子的平均定位时间为2.61 ms,定位快速,满足象棋机器人快速精准定位的要求。
各个字符定位精度存在差异:” 将”、“帥”、“炮”等的定位精度较高达到0.1 mm级别;而“士”、“車”的定位精度较低,仅为0.5 mm左右。因为相比于“将”、“帥”等左右结构分布的文字,“士”、“車”等为一体的竖长结构,造成其最大轮廓外接圆稳定性不足,定位存在较大偏差。
定位时间存在差异,“士”、“仕”定位时间短达到1.5 ms左右;而“馬”、“炮”等字符定位时间长为3.0 ms左右,这是因为:“士”、“仕”等字符的笔画较少的文字,“馬”、“炮”等较多,进行轮廓提取后字符轮廓数量多,轮廓遍历时遍历的次数多,而造成定位时间长。
3.2 棋子识别实验本文采用旋转差分识别算法,因此棋子识别率和差分时模板每次旋转角度a密切相关,且算法的运算时间也与其直接相关,a越小,即识别率越高但运算效率越差。如何平衡识别率和运算效率,是该算法要解决的关键问题。
采集20副图像共640个棋子进行测试,在0°~45°区间内分别设定了不同的差分旋转角度a°进行11次实验,如表2 所示。注:运算时间为单个棋子的全流程平均运算时间,包括定位与识别。
由表2可以得到棋子识别率和运算时间与差分旋转角度a的关系图,如图12和图13所示。
Download:
|
|
Download:
|
|
对图12、13进行分析,从识别率来看,当旋转角度在1°~21°变化时,系统均保持较高的准确率,达到98%。当角度超过21°以后,准确率开始下降并且下降速率越来越快。
从运算时间来看,角度为1°时处理一个棋子平均耗时75.6 ms。但随着角度不断增大,运算时间迅速减小,为5°时,运算时间已减小到18.7 ms。随后减小速率不断放缓。
综合识别率和运算时间分析,该系统差分识别算法的旋转角度选择10°~15°较为适宜。在此角度范围内,棋子识别率较高为98%左右,全流程运算时间为10 ms左右,满足象棋机器人系统的要求。
选定旋转差分角a=13°,对20幅图片中各个字符识别情况分别统计如表3所示。其中错误识别为:“炮”错误识别为“相”;“馬”和“兵”之间错误识别;“車”和“卒”之间错误识别。字符之间相互错误识别的原因和如何进一步提升算法的识别准确率是下一步研究的重点。
3.3 实验结果对比将本文在旋转差分角度设定在13°情况下的实验数据与文献[17]的实验数据进行对比,得到结果如表4所示。
从表4可知,本象棋棋子定位与识别系统棋子定位误差0.5 mm略低于文献[17]的0.8 mm,识别准确率98.8%略高于文献[17]的98%,该两项指标相差不大。但本系统棋子全流程运算时间仅为9.3 ms,远远小于文献[17]的最短识别时间49 ms。
本文使用的摄像机为普通网络摄像头分辨率为1 280像素×720像素,文献[17]使用的是工业高清相机分辨率为1 000像素×1 000像素;本文使用的棋子为直径15 mm,文献[17]使用的棋子直径为28 mm;且文献[17]的测试环境较为简单,为测试平台箱内部,本文的测试环境较为复杂。因此,本文的综合测试效果优于文献[17],具有良好的应用前景。
4 结束语本文针对中国象棋机器人中棋子视觉定位与识别问题,提出了一种基于最小外接圆二次定位的定位方法和一种旋转差分识别算法。实验结果表明该定位方法能够实现棋子的快速高精度定位,定位精度达到0.5 mm,平均定位时间为2.6 ms;能够快速精准地识别棋子,在保证棋子识别准确度达到98%以上的情况下,单棋子全流程运算时间为10 ms左右,完全满足现有象棋机器人的指标要求。
目前该算法在个别字符定位误差和识别准确度、棋子定位时间、棋子全流程运算时间等方面存在进一步优化空间,这将是下一步研究的重点。
[1] |
黄立波, 夏庭锴, 王春香, 等. 实时环境下的对弈机器人控制系统设计与分析[J]. 机械, 2004, 31(6): 50-52. HUANG Libo, XIA Tingkai, WANG Chunxiang, et al. Design and analysis of the chinese-chess robot in real time environment[J]. Machinery, 2004, 31(6): 50-52. (0) |
[2] |
张代兵, 朱全民, 张纪阳. 一种博弈机器人的研制[J]. 仪器仪表学报, 2006, 27(6): 2109-2111. ZHANG Daibing, ZHU Quanmin, ZHANG Jiyang. Design and realization of a chess robot[J]. Chinese journal of scientific instrument, 2006, 27(6): 2109-2111. (0) |
[3] | LEE D S, WANG S J, PANG H Y. Computer-controlled Chinese chess[C]//2010 International Symposium on Computer Communication Control and Automation. Tainan, China, 2010: 389–392. (0) |
[4] |
张永德, 毕津滔. 基于AVR单片机的机器人控制器设计[J]. 计算机系统应用, 2008(11): 20-24. ZHANG Yongde, BI Jintao. Design of robot controller based on AVR single-chip computer[J]. Computer systems and applications, 2008(11): 20-24. DOI:10.3969/j.issn.1003-3254.2008.11.005 (0) |
[5] |
庄剑毅. 基于ARM嵌入式Linux的象棋机器人控制系统研究[D]. 广州: 华南理工大学, 2012. ZHUANG Jianyi. Research on the control system of Chinese chess robot based on ARM and embedded Linux[D]. Guangzhou: South China University of Technology, 2012. (0) |
[6] |
刘飞, 吕新广. 药品及其包装对超高频RFID标签性能的影响[J]. 重庆邮电大学学报: 自然科学版, 2017, 29(4): 563-568. LIU Fei, LV Xinguang. Effects of drug and its packaging on the performance of UHF RFID tag[J]. Journal of Chongqing university of posts and telecommunications: natural science edition, 2017, 29(4): 563-568. (0) |
[7] |
许丰磊. 象棋机器人视觉算法与智能控制软件的研究[D]. 哈尔滨: 哈尔滨工业大学, 2006. XU Fenglei. The research of the vision algorithm and intelligent control software for chess robot[D]. Harbin: Harbin Institute of Technology, 2006. (0) |
[8] | 肖克先. 象棋机器人嵌入式视觉系统的研究与开发[D]. 北京: 北方工业大学, 2010. (0) |
[9] | FANG Jianjun, XIAO Kexian. Binarized Gabor filters based illumination invariant Chinese character recognition[C]//Proceedings of the 2009 IEEE International Conference on Mechatronics and Automation. Changchun, China, 2009: 4976–4980. (0) |
[10] |
杜俊俐, 张景飞, 黄心汉. 基于视觉的象棋棋盘识别[J]. 计算机工程与应用, 2007, 43(34): 220-232. DU Junli, ZHANG Jingfei, HUANG Xinhan. Chess-board recognition based on vision[J]. Computer engineering and applications, 2007, 43(34): 220-232. DOI:10.3321/j.issn:1002-8331.2007.34.066 (0) |
[11] |
杜俊俐, 黄心汉. 象棋机器人视觉系统设计[J]. 电子技术应用, 2007, 33(9): 133-136. DU Junli, HUANG Xinhan. Design of Chinese chess robot vision system[J]. Application of electronic technique, 2007, 33(9): 133-136. (0) |
[12] |
张浩鹏, 王宗义. 基于灰度方差和边缘密度的车牌定位算法[J]. 仪器仪表学报, 2011, 32(5): 1095-1102. ZHANG Haopeng, WANG Zongyi. Car license plate location algorithm based on intensity variance and edge density[J]. Chinese journal of scientific instrument, 2011, 32(5): 1095-1102. (0) |
[13] |
费继友, 谢金路, 李花, 等. 基于字符特征约束的自适应车牌校正提取[J]. 仪器仪表学报, 2016, 37(3): 632-639. FEI Jiyou, XIE Jinlu, LI Hua, et al. Adaptive license plate correction and extraction based on character feature constraint[J]. Chinese journal of scientific instrument, 2016, 37(3): 632-639. (0) |
[14] |
冯元华, 王思华, 柳宁, 等. 机器视觉技术在博弈智能机器人设计中的应用[J]. 计算机工程与设计, 2009, 30(14): 3371-3379. FENG Yuanhua, WANG Sihua, LIU Ning, et al. Application of machine vision technology in design of chess playing intelligent robot[J]. Computer engineering and design, 2009, 30(14): 3371-3379. (0) |
[15] |
莫妙桃. 基于DSP的智能象棋机器人视觉图像采集与识别研究[D]. 北京: 北方工业大学, 2009. MO Miaotao. Study on vision image grabbing system based on DSP and character recognition method for Chinese chess playing robot[D]. Beijing: North China University of Technology, 2009. (0) |
[16] |
王殿君. 基于视觉的中国象棋棋子识别定位技术[J]. 清华大学学报; 自然科学版, 2013, 53(8): 1145-1149. WANG Dianjun. Recognition and positioning technique of Chinese chess based on vision[J]. Journal of Tsinghua university: science and technology, 2013, 53(8): 1145-1149. (0) |
[17] |
伍锡如, 黄国明, 孙立宁. 基于深度学习的工业分拣机器人快速视觉识别与定位算法[J]. 机器人, 2016, 38(6): 711-719. WU Xiru, HUANG Guoming, SUN Lining. Fast visual identification and location algorithm for industrial sorting robots based on deep learning[J]. Robot, 2016, 38(6): 711-719. (0) |
[18] |
赵军, 赵艳, 杨勇, 等. 基于降维的堆积降噪自动编码机的表情识别方法[J]. 重庆邮电大学学报: 自然科学版, 2016, 28(6): 844-848. ZHAO Jun, ZHAO Yan, YANG Yong, et al. Facial expression recognition method based on stacked denoising auto-encoders and feature reduction[J]. Journal of Chongqing university of posts and telecommunications: natural science edition, 2016, 28(6): 844-848. (0) |
[19] |
陈海峰, 雷华, 孔燕波, 等. 基于最小二乘法的改进的随机椭圆检测算法[J]. 浙江大学学报: 工科版, 2008, 42(8): 1360-1364. CHEN Haifeng, LEI Hua, KONG Yanbo, et al. An improved randomized algorithm for detecting ellipses based on least square approach[J]. Journal of Zhejiang university: engineering science, 2008, 42(8): 1360-1364. (0) |
[20] |
闫蓓, 王斌, 李媛. 基于最小二乘法的椭圆拟合改进算法[J]. 北京航空航天大学学报, 2008, 34(3): 295-298. YAN Bei, WANG Bin, LI Yuan. Optimal ellipse fitting method based on least-square principle[J]. Journal of Beijing university of aeronautics and astronautics, 2008, 34(3): 295-298. (0) |
[21] |
周显恩, 王耀南, 李康军, 等. 一种多次随机圆检测及拟合度评估的瓶口定位法[J]. 仪器仪表学报, 2015, 36(9): 2021-2029. ZHOU Xian’en, WANG Yaonan, LI Kangjun. New bottle mouth positioning method based on multiple randomized circle detection and fitting degree evaluation[J]. Chinese journal of scientific instrument, 2015, 36(9): 2021-2029. (0) |
[22] | JIANG Lianyuan. Fast detection of multi-circle with randomized Hough transform[J]. Optoelectronics letters, 2009, 5(5): 397-400. DOI:10.1007/s11801-009-9071-1 (0) |