一种实物象棋开局的识别方法

文档序号:10697767阅读:316来源:国知局
一种实物象棋开局的识别方法
【专利摘要】本发明公开了一种实物象棋开局的识别方法,用于准确的识别实物象棋的开局。本发明通过对实物象棋开局进行图像的读取和识别,来判断实物象棋开局的棋子摆放位置是否正确,从而能够使人机对弈能够顺利开始。
【专利说明】
一种实物象棋开局的识别方法
技术领域
[0001 ]本发明涉及一种象棋的识别方法。
【背景技术】
[0002]现在人们经常与电脑进行下棋。一种是直接在电脑上通过鼠标与电脑软件对弈,另外一种是通过实物象棋与电脑对弈,棋手每下一步棋,电脑通过摄像头读取图像数据,电脑软件根据棋手的棋招给出相应的招数,然后再控制机械手抓取实物象棋在真实棋盘中进行落子。对于后面这种情况,就需要对实物象棋进行准确的识别。

【发明内容】

[0003]本发明的目的是提供一种实物象棋开局的识别方法,用于准确的识别实物象棋的开局。
[0004]本发明提供的技术方案是:
[0005]—种实物象棋开局的识别方法,包括以下步骤:1)建立实物棋子的模板,根据棋子的不同类型确定需要的模板种类,将需要建立模板的棋子在棋盘的上下左右中间各个位置都放置一次,用摄像头去获取图像并截取棋子区域编辑保存,同时为了增加对各种光强下的适应性,特地在多个光环境下进行取像;
[0006]2)棋盘位置的校准,校准过程如下:a图像坐标系的建立,假设摄像头获取的图像规格是N*M的,整个图像以最左上角为原点(O,O ),最右上角的点的坐标为(O,N ),最左下角的点坐标为(M,0),以此类推,b粗调,调整摄像头和棋盘,使得摄像头获得的图像肉眼看起来刚好覆盖住整个棋牌,c微调,在显示屏的正中间显示横纵方向的两条线,用于对准象棋棋盘的河界上的线和“将帅”所处的那条中间线,如果重合,就可以认为当前位置棋盘位于图像的正中间,每次校准都以这个相对位置为基准;
[0007]3)具体棋子的识别过程,对摄像头获取的开局图像进行处理,识别出各个位置的棋子是否正确放置,即判断是否放了棋子,放的棋子的种类是否正确,放的棋子的颜色是否正确,具体包括以下步骤:
[0008]a棋子位置的确定,首先正确放置棋子,在采集的图像中确定各个棋子的坐标,下次就可以读取这些坐标信息来判断该位置的棋子是否放置正确,
[0009]b棋子区域的获取,以之前保存的坐标信息为圆心,20个像素长为半径作圆就得到棋子区域,
[0010]c棋子区域的具体处理,获得棋子的区域后建立目标棋子的数据信息,
[0011]d数据信息的匹配,按照c得到的数据信息来模板里匹配,匹配的话就是遍历整幅模板图像,循环检查每个区域的轮廓和数据的相似度;
[0012]4)整个开局扫描过程,首先读取模板图像,然后依次选取应该有棋子的区域,然后循环执行第3)步:具体棋子的识别过程,将每个棋子区域都判断一遍,如果每个都正确,都放在了各自应该放的区域,那么就认为开局扫描成功。
[0013]步骤I)中,在取像的过程中特意将棋子进行多次旋转,使得模版在匹配的时候对不同角度的图像更加普适。
[0014]步骤I)中,在对模板图像获取后,对模板图像进行处理,在三通道的彩图中选取单个绿色通道。
[0015]本发明通过对实物象棋开局进行图像的读取和识别,来判断实物象棋开局的棋子摆放位置是否正确,从而能够使人机对弈能够顺利开始。
【附图说明】
[0016]图1为本发明的流程示意图。
[0017]图2为本发明的图像处理的的金字塔层数的示意图。
【具体实施方式】
[0018]下面结合附图和【具体实施方式】对本发明进行详细说明。
[0019]第一步:预处理
[0020]本发明首先建立实物棋子的模板,模版的作用是:用于匹配,识别棋子的种类。模版的建立过程:
[0021]1.首先根据棋子的不同类型确定需要的模板种类。
[0022]中国象棋里红黑双方棋子各16个,7种,同时红黑部分棋子种类一样,只是颜色不同,比如“红士”和“黑士”,所以一副象棋总共棋子总类是10种。“兵”,“车”,“马”,“相”,“士”,“帅”,“炮”,“卒”,“象”,“将”。需要建立模版的也是这10种棋子。
[0023]2.模版图像的获取
[0024]将需要建立模版的棋子在棋盘的上下左右中间各个位置都放置一次,用摄像头去获取图像并截取棋子区域编辑保存。同时为了增加对各种光强下的适应性,特地在多个光环境下进行取像。另外,也有在取像的过程中特意将棋子进行多次旋转,使得模版在匹配的时候对不同角度的图像更加普适。
[0025]3.对模版图像的处理
[0026]由于保存的是模版的一个彩色图像,信息量比较大,不利于快速匹配,所以在匹配前将模版图像进行简单的处理,即在3通道的彩图中选取单个绿色通道。这样既保留了棋子图像的有效信息,又压缩了信息量为快速匹配的可能建立基础。
[0027]4.如何通过匹配获得棋子种类
[0028]在模版图像中如果成功匹配到某一区域,只要检查该区域的纵坐标就可以判断棋子的种类。比如“兵”的纵坐标是最小的,小于50,车在50到100之间,以此类推。
[0029]第二步:棋盘位置的校准
[0030]为了使每次开局扫描时摄像头和棋盘的相对位置是定值,每次开局前都需要对棋盘的位置进行校准,校准过程如下:
[0031 ] 1.图像坐标系的建立,假设摄像头获取的图像规格是N*M,本实施例为640*480的,整个图像以最左上角为原点(0,0),最右上角的点的坐标为(O,640),最左下角的点坐标为(480,0),以此类推;
[0032]2.粗调,调整摄像头和棋盘,使得摄像头获得的图像肉眼看起来刚好覆盖住整个棋牌;
[0033]3.微调,在显示屏的正中间显示横纵方向的两条线,用于对准象棋棋盘的河界上的线和“将帅”所处的那条中间线,如果重合,就基本可以认为当前位置棋盘位于图像的正中间,每次校准都以这个相对位置为基准。
[0034]第三步:具体棋子的识别过程
[0035]对摄像头获取的开局图像进行处理,识别出各个位置的棋子是否正确放置,即判断是否放了棋子,放的棋子的种类是否正确,放的棋子的颜色是否正确等等。
[0036]1.棋子位置的确定。首先正确放置棋子,在采集的图像中确定各个棋子的坐标。比如左上角的黑车的坐标是(30,80),边上的马的坐标是(80,80)。以此类推存放所有的棋子的位置坐标。下次就可以读取这些坐标信息直接使用。那么下次只要在(30,80)这个位置去寻找是否有黑车即可判断该位置的子是否放置正确。
[0037]2.棋子区域的获取。以之前保存的坐标信息为圆心,20个像素长为半径作圆就得到棋子区域。比如一个“士”的棋子区域,根据之前保存的信息,这个“士”的坐标位置是(180,80),那么就以该点为圆心,20为半径作圆。之所以采用的是圆形区域而不是矩形区域是因为棋子就是呈圆形的,用矩形区域的话反而会添加一些图像干扰区域,采用圆形区域既能保留关键图像信息,又能排除干扰。同时,该图像是彩色RGB3通道的图中选取了G通道的图像,目的是为了减少图像的信息(三通道彩图信息量大,单通道图信息量小),提高处理速度。
[0038]3.棋子区域的具体处理。获得棋子的区域后还不能直接用来和模版匹配,必须建立目标棋子(在这里就是“士” )的数据信息。
[0039]①第一个数据信息就是目标的轮廓。接下来的操作都是对目标进行操作,所以要求目标必须有一个清晰可见又能便于分辨轮廓。轮廓取决于前景和背景的灰度值差别,前景就是“士”这个字,背景就是棋子区域的无字区域。两者对比越明显轮廓的提取就越容易。只要根据相邻像素点灰度值的不同就可以得到的士轮廓。
[0040]②第二个数据信息就是图像的金字塔层数。如图2,所谓的图像金字塔就是一个图像可以被放大缩小,在图像金字塔顶层的图像尺寸小,信息量少,底层的图像尺寸大,包含的信息量大。当需要去寻找一个很“大”的棋子(近距离拍摄获得的图像)或者很“小”的棋子(远距离拍摄获得的图像)的时候,就需要加入图像金字塔。这样就能去匹配放大的或者缩小了的图像。但是在本发明中由于每次获得的图像尺寸基本一样,不会出现棋子被“放大”、“缩小”等现象,所以就可以将图像金子塔设置为I层,即只有原始图像。
[0041]③第三个数据信息就是旋转角度。就是给的轮廓是角度a,如果需要寻找的目标转了90度变成了a+90度,此时还能用刚才的轮廓否找到。在本发明中,因为人在开局摆子和之后走子的过程中都无法避免的会改变棋子的角度,所以需要能够360度都能找到。所以,在建立模版的时候在数据信息里加入了 360度的轮廓信息。
[0042]④最终的效果示意图。示意图的旋转角度只是简单的用了90度间隔,本发明真实数据信息包括的旋转角度间隔是2度,信息量比示意图更大。示意图也给出了金字塔信息,本发明只用了最底层的信息,即示意图中红方框里的部分。最后就是用红方框里信息去匹配。
[0043]4.数据信息的匹配。按照第3步得到的数据信息来这幅模版里匹配,匹配的话就是遍历整幅模版图像,循环检查每个区域的轮廓和数据的相似度,相似度在O到I之间。一般情况下大于0.85就认为是比较接近的图像了。0.95以上基本就认为是一模一样的了。先用第一个“倒置的士”去匹配,比如得到分值最高的区域是(200,60),然后用第二个“转了 90度的士”去匹配,比如得到分值最高的区域是(201,100),以此类推,最后选出分值最高的区域比如说是(200,60),那么就认为此次匹配得到的区域是(200,60)。
[0044]第四步:整个开局扫描过程
[0045]首先读取模版图像,然后依次选取应该有棋子的区域,然后循环执行“第三步:具体棋子的识别过程”,将每个棋子区域都判断一遍,如果每个都正确,都放在了各自应该放的区域,那么就认为开局扫描成功。其中,可能出现的错误情况有:1.没有扫描到棋子。这种情况即漏放棋子2.扫描到错误的棋子种类。这种情况就是在放车的地方放了一个马3.扫描到错误的棋子颜色。应该放红车的地方放了黑车。
【主权项】
1.一种实物象棋开局的识别方法,其特征在于,包括以下步骤: 1)建立实物棋子的模板,根据棋子的不同类型确定需要的模板种类,将需要建立模板的棋子在棋盘的上下左右中间各个位置都放置一次,用摄像头去获取图像并截取棋子区域编辑保存,同时为了增加对各种光强下的适应性,特地在多个光环境下进行取像; 2)棋盘位置的校准,校准过程如下:a图像坐标系的建立,假设摄像头获取的图像规格是N*M的,整个图像以最左上角为原点(O,0),最右上角的点的坐标为(0,N),最左下角的点坐标为(M,0),以此类推,b粗调,调整摄像头和棋盘,使得摄像头获得的图像肉眼看起来刚好覆盖住整个棋牌,c微调,在显示屏的正中间显示横纵方向的两条线,用于对准象棋棋盘的河界上的线和“将帅”所处的那条中间线,如果重合,就可以认为当前位置棋盘位于图像的正中间,每次校准都以这个相对位置为基准; 3)具体棋子的识别过程,对摄像头获取的开局图像进行处理,识别出各个位置的棋子是否正确放置,即判断是否放了棋子,放的棋子的种类是否正确,放的棋子的颜色是否正确,具体包括以下步骤: a棋子位置的确定,首先正确放置棋子,在采集的图像中确定各个棋子的坐标,下次就可以读取这些坐标信息来判断该位置的棋子是否放置正确, b棋子区域的获取,以之前保存的坐标信息为圆心,20个像素长为半径作圆就得到棋子区域, c棋子区域的具体处理,获得棋子的区域后建立目标棋子的数据信息, d数据信息的匹配,按照c得到的数据信息来模板里匹配,匹配的话就是遍历整幅模板图像,循环检查每个区域的轮廓和数据的相似度; 4)整个开局扫描过程,首先读取模板图像,然后依次选取应该有棋子的区域,然后循环执行第3)步:具体棋子的识别过程,将每个棋子区域都判断一遍,如果每个都正确,都放在了各自应该放的区域,那么就认为开局扫描成功。2.根据权利要求1所述的一种实物象棋开局的识别方法,其特征在于,步骤I)中,在取像的过程中特意将棋子进行多次旋转,使得模版在匹配的时候对不同角度的图像更加普适。3.根据权利要求1所述的一种实物象棋开局的识别方法,其特征在于,步骤I)中,在对模板图像获取后,对模板图像进行处理,在三通道的彩图中选取单个绿色通道。
【文档编号】A63F3/02GK106067025SQ201610303778
【公开日】2016年11月2日
【申请日】2016年5月10日 公开号201610303778.9, CN 106067025 A, CN 106067025A, CN 201610303778, CN-A-106067025, CN106067025 A, CN106067025A, CN201610303778, CN201610303778.9
【发明人】顾敏明, 黄世青
【申请人】浙江理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1