CN104998405B - 一种基于图像识别的围棋记谱处理方法 - Google Patents
一种基于图像识别的围棋记谱处理方法 Download PDFInfo
- Publication number
- CN104998405B CN104998405B CN201510348323.4A CN201510348323A CN104998405B CN 104998405 B CN104998405 B CN 104998405B CN 201510348323 A CN201510348323 A CN 201510348323A CN 104998405 B CN104998405 B CN 104998405B
- Authority
- CN
- China
- Prior art keywords
- chessboard
- image
- state
- little
- former
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明提供了一种基于图像识别的围棋记谱处理方法,其通过摄像头固定拍摄围棋棋盘,由图像处理装置从摄像头获取包含围棋棋盘的图像数据,并执行围棋记谱处理,摆脱了人工记录的繁琐,同时也消除了人工记谱过程中人为因素可能带来的干扰;该围棋记谱处理方法完全通过图像处理来实现围棋棋谱状态的识别和记谱,不需要针对围棋棋盘和棋子作特殊处理,也不需要昂贵的棋盘、棋子设施,能够在任意的围棋棋局场合中得以普遍适用;不仅如此,其记谱处理过程采用的图像处理技术计算处理都较为简单,并且在很多细节处理流程上作了针对性的简化,有助于减少整体处理的数据处理量,使得其记谱工作在保证了较高准确性的情况下还能够达到很好的实时性。
Description
技术领域
本发明涉及属于图像处理和模式识别技术领域,具体涉及一种基于图像识别的围棋记谱处理方法。
背景技术
现在的围棋记谱工作主要靠人工完成,存在诸多弊端。特别是围棋培训和围棋比赛中,参与人数众多,需要大量的人工进行记谱,费时、费力,且容易出现错误。因此,自动记谱装置,及其方法显得尤为必要。
专利CN101850178A公开了一种基于图像识别的自动计时记谱的围棋棋具。该器具包括:位于该围棋棋具上表面的棋盘面板和固定在该棋盘面板上方的摄像头,位于该围棋棋具内部的中央处理器和非易失性存储器,以及电源。该专利通过按键触发图像采集,并对触发时间和图像进行输出。但实际上,该专利仅仅保存原始图像,并没有对图像中的棋谱进行识别,无法实现自动复盘等与记谱相关的更多复杂功能,因此实际记谱工作依然需要依靠人工完成,难以避免人工记谱过程中人为因素可能带来的干扰。
专利CN104225908A公开了一种具有复盘功能的RFID围棋棋盘。该棋盘包括:若干RFID棋子,该些RFID棋子包括黑白两种,每颗棋子内部包含一RFID近场标签;棋盘外壳,包含安装控制电路的防护壳体、棋盘支架及19×19的棋盘盘面,以及361个近场天线;通过近场天线对RFID棋子的读取,进行识别棋谱,从而实现围棋自动复盘功能。该专利需要361个近场天线的电路及其处理器,其复杂的电路结构决定了该棋盘造价成本较高,影响大规模推广。
发明内容
针对现有技术中存在的上述不足,本发明的目的在于提供一种基于图像识别的围棋记谱处理方法,用于通过图像识别处理自动完成对围棋棋盘的记谱工作,摆脱了人工记录的繁琐,同时也消除了人工记谱过程中人为因素可能带来的干扰,并且不需要昂贵的棋盘设施,记谱工作在保证了较高准确性的情况下还能够达到很好的实时性。
为实现上述目的,本发明采用的一个技术方案是:
一种基于图像识别的围棋记谱处理方法,通过摄像头固定拍摄围棋棋盘,由图像处理装置从摄像头获取包含围棋棋盘的图像数据,并执行围棋记谱处理;所述图像处理装置执行围棋记谱处理的流程包括如下步骤:
1)预先从摄像头获取包含空白围棋棋盘完整图像的一帧棋盘原始图像;
2)通过图像识别处理,确定棋盘原始图像中围棋棋盘的各个星位的图像位置坐标,并确定围棋棋盘的天元位置的图像位置坐标;
3)根据棋盘原始图像中围棋棋盘的各个星位的坐标间隔距离以及天元位置的图像位置坐标,确定摄像头拍摄图像画面中围棋棋盘的每个棋盘格的纵向像素长度和横向像素宽度,以及围棋棋盘的361个落子点的图像位置坐标;
4)从摄像头获取包含围棋棋盘图像的一帧棋盘状态图像;
5)将摄像头拍摄图像画面中围棋棋盘的361个落子点的图像位置坐标设定为当前一帧棋盘状态图像中围棋棋盘的361个落子点的图像位置坐标,通过图像识别处理,分别判断当前一帧棋盘状态图像中围棋棋盘的361个落子点位置为原棋盘状态还是非原棋盘状态;所述原棋盘状态是指落子点位置处于没有棋子且未被遮挡状态,所述非原棋盘状态是指落子点位置处于有棋子或者被遮挡状态;
6)分别对当前一帧棋盘状态图像中围棋棋盘的各个非原棋盘状态的落子点位置进行黑棋子状态、白棋子状态和被遮挡状态的识别区分;
7)统计判断当前一帧棋盘状态图像中围棋棋盘包含的被遮挡状态的落子点数量是否达到预设的被遮挡落子点限值;若是,则判定当前一帧棋盘状态图像不满足棋盘记谱更新条件,跳转执行步骤9;否则,则判定当前一帧棋盘状态图像满足棋盘记谱更新条件,执行步骤8;
8)根据当前一帧棋盘状态图像中围棋棋盘的361个落子点位置各自的棋子状态,生成围棋棋谱,然后执行步骤9);生成围棋棋谱的原则为:
对于围棋棋盘中原棋盘状态的落子点,记录为无棋子状态;对于围棋棋盘中白棋子和黑棋子状态的落子点记录其当前的落子点棋子状态;对于围棋棋盘中被遮挡状态的落子点,读取前一次生成的围棋棋谱中相应落子点位置的棋子状态并加以记录;从而记录确定当前一帧棋盘状态图像中围棋棋盘的361个落子点位置各自的棋子状态,依据当前记录的各落子点的棋子状态,生成围棋棋谱;
9)返回执行步骤4);
10)重复循环执行步骤4)~9),直至围棋记谱处理结束。
上述基于图像识别的围棋记谱处理方法中,具体而言,所述步骤2具体为:
21)对获取到的棋盘原始图像进行二值化处理,得到二值化图像;
22)对二值化图像进行膨胀和腐蚀处理;
23)将膨胀、腐蚀后的二值化图像中的9个黑色圆点位置确定为棋盘原始图像的9个星位,其中最中间一个星位即确定为天元位置;由此,确定棋盘原始图像中各个星位和天元位置的图像位置坐标。
上述基于图像识别的围棋记谱处理方法中,具体而言,所述步骤3具体为:
31)统计棋盘原始图像中每横向相邻两个星位的图像坐标间隔距离和每纵向相邻两个星位的图像坐标间隔距离,计算围棋棋盘中每个棋盘格的纵向像素长度和横向像素宽度:
Gw=EHi/6/nH;
Gh=EVi/6/nV;
其中,Gw表示棋盘格的横向像素宽度,Gh表示棋盘格的纵向像素长度;EHi表示棋盘原始图像中各对纵向相邻两个星位的图像坐标间隔距离的和值,EVi表示棋盘原始图像中各对横向相邻两个星位的图像坐标间隔距离的和值;nH表示棋盘原始图像中纵向相邻两个星位的成对数,nV表示棋盘原始图像中横向相邻两个星位的成对数;
32)以棋盘原始图像中天元位置为中心,根据棋盘格的纵向像素长度和横向像素宽度,确定围棋棋盘中各个棋盘格的图像位置坐标;
33)将围棋棋盘中各个棋盘格的交叉点位置判定为落子点的位置,从而确定摄像头拍摄图像画面中围棋棋盘的各个落子点的图像位置坐标。
上述基于图像识别的围棋记谱处理方法中,具体而言,所述步骤5具体为:
51)将摄像头拍摄图像画面中围棋棋盘的361个落子点的图像位置坐标设定为当前一帧棋盘状态图像中围棋棋盘的361个落子点的图像位置坐标,并对当前一帧棋盘状态图像进行二值化处理,得到当前帧二值化图像;
52)对于当前帧二值化图像中围棋棋盘上非边界位置的落子点,分别检测每个落子点的上、下、左、右位置处是否均存在黑色线条;若均存在,则判定该落子点为原棋盘状态;否则,判定该落子点为非原棋盘状态;
对于当前帧二值化图像中围棋棋盘上边界位置的落子点,分别检测每个落子点的上、下、左、右位置中的非边界方向位置处是否均存在黑色线条;若均存在,则判定该落子点为原棋盘状态;否则,判定该落子点为非原棋盘状态;
由此确定当前一帧棋盘状态图像中围棋棋盘的361个落子点位置为原棋盘状态还是非原棋盘状态。
上述基于图像识别的围棋记谱处理方法中,具体而言,所述步骤6具体为:
61)对当前一帧棋盘状态图像进行灰度化处理,得到当前帧灰度图像;
62)对于当前帧灰度图像中围棋棋盘的一个非原棋盘状态的落子点,获取该落子点的区域图像;所述落子点的区域图像范围,是以落子点为中心、向左和向右各延伸半个棋盘格横向像素宽度、且向上和向下各延伸半个棋盘格纵向像素长度所覆盖的区域图像;
62)采用霍夫变换识别出该落子点的区域图像中是否存在圆形;若不存在,则判定该落子点位置为被遮挡状态;若存在,则继续执行步骤63);
63)判断落子点的区域图像中所存在的圆形是否同时满足如下两个条件:
①、圆形的半径Cr满足:Gav/3<Cr<4Gav/5;
②、圆形的圆心位置与当前落子点的间距Dcc满足:Dcc<Gav/3;
其中,Gav表示棋盘格的纵向像素长度和横向像素宽度的平均值,即Gav= (Gw+Gh)/2,Gw表示棋盘格的横向像素宽度,Gh表示棋盘格的纵向像素长度;
若不同时满足,则判定该落子点位置为被遮挡状态;若同时满足,则判定该落子点位置存在棋子,继续执行步骤64);
64)取落子点的区域图像中所存在的圆形区域中的k个像素点并求取像素灰度平均值,若求取得到的像素灰度平均值小于128灰度值,则判定该落子点位置为黑棋子状态;否则,判定该落子点位置为白棋子状态;
65)通过步骤62)~64)的处理流程对当前帧灰度图像中围棋棋盘的各个非原棋盘状态的落子点分别进行状态识别区分,从而确定当前一帧棋盘状态图像中围棋棋盘的每个非原棋盘状态的落子点为黑棋子状态、白棋子状态还是被遮挡状态。
相比于现有技术,本发明具有以下有益效果:
1、本发明基于图像识别的围棋记谱处理方法,通过摄像头固定拍摄围棋棋盘,由图像处理装置从摄像头获取包含围棋棋盘的图像数据,并执行围棋记谱处理,摆脱了人工记录的繁琐,同时也消除了人工记谱过程中人为因素可能带来的干扰。
2、本发明基于图像识别的围棋记谱处理方法,完全通过图像处理来实现围棋棋谱状态的识别和记谱,不需要针对围棋棋盘和棋子作特殊处理,也不需要昂贵的棋盘、棋子设施,能够在任意的围棋棋局场合中得以普遍适用,有利于大规模推广。
3、本发明基于图像识别的围棋记谱处理方法,其记谱处理过程采用的图像处理技术计算处理都较为简单,并且在很多细节处理流程上作了针对性的简化,有助于减少整体处理的数据处理量,使得其记谱工作在保证了较高准确性的情况下还能够达到很好的实时性。
附图说明
图1为本发明基于图像识别的围棋记谱处理方法的流程图。
图2为从一帧棋盘原始图像中获取到各个星位和天元位置的图像位置坐标的状态图。
图3为从一帧棋盘原始图像中获取到361个落子点的图像位置坐标的状态图。
具体实施方式
本发明提供一种基于图像识别的围棋记谱处理方法,该方法可以应用在围棋练习、教学或比赛场合中,通过摄像头固定拍摄围棋棋盘,由图像处理装置从摄像头获取包含围棋棋盘的图像数据,并通过图像识别处理,识别出围棋棋盘中361个落子点的位置,并确定各个落子点位置各自的棋子状态,完成围棋记谱工作。具体实施中,摄像头固定拍摄围棋棋盘时,需要使得摄像头拍摄获取到围棋棋盘的完整图像;并且,作为较为优选的设置方式,摄像头的拍摄镜头最好正对围棋棋盘盘面的中心位置,且拍摄镜头的光轴与围棋棋盘的盘面相垂直,这样有助于缓解因拍摄角度问题引起摄像头捕捉的围棋棋盘图像产生较大的图形畸变,从而更有利于围棋棋盘的识别和记谱处理。其中,图像处理装置执行围棋记谱处理的方法是本发明的主要创新点,图像处理装置执行围棋记谱处理的流程如图1所示,包括如下步骤:
1)预先从摄像头获取包含空白围棋棋盘完整图像的一帧棋盘原始图像。
由于摄像头是固定拍摄围棋棋盘的,因此预先获取一帧包含空白围棋棋盘完整图像的棋盘原始图像,用以处理确定出摄像头拍摄到的围棋棋盘的一些固定信息,例如棋盘格尺寸、落子点位置等。
2)通过图像识别处理,确定棋盘原始图像中围棋棋盘的各个星位的图像位置坐标,并确定围棋棋盘的天元位置的图像位置坐标。
围棋棋盘上有9个星位,且该9个星位通过黑色圆点加以标出,相比于围棋棋盘上的棋盘线条以及通过线条交叉形成的其它落子点而言,该9个星位的图像特征非常明显;因此,现通过图像识别处理出围棋棋盘上的9个星位位置,借以对摄像头拍摄图像中的围棋棋盘位置加以定位。该步骤的具体为:
21)对获取到的棋盘原始图像进行二值化处理,得到二值化图像;
22)对二值化图像进行膨胀和腐蚀处理;
23)将膨胀、腐蚀后的二值化图像中的9个黑色圆点位置确定为棋盘原始图像的9个星位,其中最中间一个星位即确定为天元位置;由此,确定棋盘原始图像中各个星位和天元位置的图像位置坐标。
从一帧棋盘原始图像中获取到各个星位和天元位置的图像位置坐标的图像状态如图2所示。
3)根据棋盘原始图像中围棋棋盘的各个星位的坐标间隔距离以及天元位置的图像位置坐标,确定摄像头拍摄图像画面中围棋棋盘的每个棋盘格的纵向像素长度和横向像素宽度,以及围棋棋盘的361个落子点的图像位置坐标。
围棋棋盘中,每横向相邻两个星位之间横向并排布置有6个棋盘格,同时每纵向相邻两个星位之间纵向成列布置有6个棋盘格,因此,在确定各个星位的图像位置坐标后,就可以根据纵向、横向相邻两个星位的图像坐标间隔距离来确定每个棋盘格的纵向像素长度和横向像素宽度了。为了较好地保证对图像中棋盘格尺寸确定的准确性,减少误差,本发明方法中采用求平均相邻两个星位的图像坐标间隔距离再除以6的方式,来确定每个棋盘格的纵向像素长度和横向像素宽度,进而基于确定棋盘原始图像中天元位置(是围棋棋盘的中心点位置)确定各个棋盘格的图像位置坐标,进而确定各个落子点的图像位置坐标,具体为:
31)统计棋盘原始图像中每横向相邻两个星位的图像坐标间隔距离和每纵向相邻两个星位的图像坐标间隔距离,计算围棋棋盘中每个棋盘格的纵向像素长度和横向像素宽度:
Gw=(EHi/nH)/6;
Gh=(EVi/nV)/6;
其中,Gw表示棋盘格的横向像素宽度,Gh表示棋盘格的纵向像素长度;EHi表示棋盘原始图像中各对纵向相邻两个星位的图像坐标间隔距离的和值,EVi表示棋盘原始图像中各对横向相邻两个星位的图像坐标间隔距离的和值;nH表示棋盘原始图像中纵向相邻两个星位的成对数,nV表示棋盘原始图像中横向相邻两个星位的成对数;
32)以棋盘原始图像中天元位置为中心,根据棋盘格的纵向像素长度和横向像素宽度,确定围棋棋盘中各个棋盘格的图像位置坐标;
33)将围棋棋盘中各个棋盘格的交叉点位置判定为落子点的位置,从而确定摄像头拍摄图像画面中围棋棋盘的各个落子点的图像位置坐标。
至此,通过上述处理,借助对围棋棋盘上有9个星位的定位以及围棋棋盘上各个星位与棋盘格位置分布的特征,实现了对摄像头拍摄图像中的围棋棋盘位置的定位,同时确定了摄像头拍摄图像画面中围棋棋盘的361个落子点的图像位置坐标等固定信息,由于摄像头是固定拍摄围棋棋盘的,因此这些固定信息在记谱过程中都是不会变化的。从一帧棋盘原始图像中获取到361个落子点的图像位置坐标的图像状态如图3所示。接下来就可以借助这些固定信息,对围棋棋局过程中摄像头捕获到的包含围棋棋盘图像的棋盘状态图像来进行批判识别和记谱处理了。
4)从摄像头获取包含围棋棋盘图像的一帧棋盘状态图像。
5)将摄像头拍摄图像画面中围棋棋盘的361个落子点的图像位置坐标设定为当前一帧棋盘状态图像中围棋棋盘的361个落子点的图像位置坐标,通过图像识别处理,分别判断当前一帧棋盘状态图像中围棋棋盘的361个落子点位置为原棋盘状态还是非原棋盘状态;所述原棋盘状态是指落子点位置处于没有棋子且未被遮挡状态,所述非原棋盘状态是指落子点位置处于有棋子或者被遮挡状态。
在围棋棋局进行过程中,如果能够从图像中依然识别到围棋棋盘的落子点特征,则能够确认相应落子点上没有棋子,为原棋盘状态;但如果在某落子点位置处不能识别到落子点特征,除了可能在相应落子点上存在棋子的情况之外,在围棋棋局进行过程中,还有可能因为棋手掷放棋子时手对部分棋盘形成遮挡,而导致落子点位置处不能识别到落子点特征。因此,该步骤首先判断棋盘状态图像中围棋棋盘的361个落子点位置各自为原棋盘状态还是非原棋盘状态,具体为:
51)将摄像头拍摄图像画面中围棋棋盘的361个落子点的图像位置坐标设定为当前一帧棋盘状态图像中围棋棋盘的361个落子点的图像位置坐标,并对当前一帧棋盘状态图像进行二值化处理,得到当前帧二值化图像;
52)对于当前帧二值化图像中围棋棋盘上非边界位置的落子点,分别检测每个落子点的上、下、左、右位置处是否均存在黑色线条;若均存在,则判定该落子点为原棋盘状态;否则,判定该落子点为非原棋盘状态;对于当前帧二值化图像中围棋棋盘上边界位置的落子点,分别检测每个落子点的上、下、左、右位置中的非边界方向位置处是否均存在黑色线条;若均存在,则判定该落子点为原棋盘状态;否则,判定该落子点为非原棋盘状态;由此确定当前一帧棋盘状态图像中围棋棋盘的361个落子点位置为原棋盘状态还是非原棋盘状态。
对于二值化图像,从中检测黑色线条的具体实现方式有很多,也是现有的图像识别技术中较为常规的技术手段,通过检测当前帧二值化图像中围棋棋盘上非边界位置的每个落子点上、下、左、右位置处是否存在黑色线条来判断相应落子点是否为原棋盘状态,处理过程简单且准确性好,有助于提升整体处理过程的实时性。
6)分别对当前一帧棋盘状态图像中围棋棋盘的各个非原棋盘状态的落子点位置进行黑棋子状态、白棋子状态和被遮挡状态的识别区分。
在通过步骤5)确定围棋棋盘中各个落子点为原棋盘状态还是非原棋盘状态后,则需要通过该步骤进一步的判断其中的非原棋盘状态落子点的具体状态情况。步骤6)的处理具体为:
61)对当前一帧棋盘状态图像进行灰度化处理,得到当前帧灰度图像;
62)对于当前帧灰度图像中围棋棋盘的一个非原棋盘状态的落子点,获取该落子点的区域图像;所述落子点的区域图像范围,是以落子点为中心、向左和向右各延伸半个棋盘格横向像素宽度、且向上和向下各延伸半个棋盘格纵向像素长度所覆盖的区域图像;
62)采用霍夫变换识别出该落子点的区域图像中是否存在圆形;若不存在,则判定该落子点位置为被遮挡状态;若存在,则继续执行步骤63);
63)判断落子点的区域图像中所存在的圆形是否同时满足如下两个条件:
①、圆形的半径Cr满足:Gav/3<Cr<4Gav/5;
②、圆形的圆心位置与当前落子点的间距Dcc满足:Dcc<Gav/3;
其中,Gav表示棋盘格的纵向像素长度和横向像素宽度的平均值,即Gav= (Gw+Gh)/2,Gw表示棋盘格的横向像素宽度,Gh表示棋盘格的纵向像素长度;
若不同时满足,则判定该落子点位置为被遮挡状态;若同时满足,则判定该落子点位置存在棋子,继续执行步骤64);
64)取落子点的区域图像中所存在的圆形区域中的k个像素点并求取像素灰度平均值,若求取得到的像素灰度平均值小于128灰度值,则判定该落子点位置为黑棋子状态;否则,判定该落子点位置为白棋子状态;
65)通过步骤62)~64)的处理流程对当前帧灰度图像中围棋棋盘的各个非原棋盘状态的落子点分别进行状态识别区分,从而确定当前一帧棋盘状态图像中围棋棋盘的每个非原棋盘状态的落子点为黑棋子状态、白棋子状态还是被遮挡状态。
该步骤中,是通过识别非原棋盘状态落子点的区域图像中是否存在圆形来判断是否存在棋子,并通过对圆形区域中k个像素点采样计算像素灰度平均值来判断棋子颜色,从而确定非原棋盘状态落子点为黑棋子状态、白棋子状态还是被遮挡状态。之所以先将当前一帧棋盘状态图像灰度化处理为当前帧灰度图像,是因为灰度图像的像素数据处理更加的简单高效。处理过程中,落子点的区域图像,是取以落子点为中心、向左和向右各延伸半个棋盘格横向像素宽度、且向上和向下各延伸半个棋盘格纵向像素长度所覆盖的区域图像,因为被掷放有棋子的落子点上,围棋棋子所在位置的范围不会超过这个区域图像的范围。采用霍夫变换识别图像中的圆形是非常成熟的技术。而在识别到圆形后,判断落子点的区域图像中所存在的圆形是否同时满足上述两个条件,是因为:作为星位的落子点上本身就存在圆点状的棋盘图标,但其圆点状棋盘图标的圆形半径不满足条件①,仅棋子的圆形半径满足条件①,因此通过条件①来排除将圆点状棋盘图标识别为棋子的情况;而正常情况下,在掷放有棋子的落子点上,棋子的中心位置通常与落子点位置偏差不会太大,即应当满足条件②,若不满足条件②则很可能是因为其它圆形物品形成的图像干扰(例如围棋选手掷放棋子的手上所佩戴的圆形物品等),因此通过条件②加以排除。若不能同时满足上述两个,则判定相应落子点位置为被遮挡状态。在确定圆形为棋子后,则在圆形区域中采样k个像素点计算像素灰度平均值来判断棋子颜色,这样可以减少处理计算量,同时也不会影响判断结果的准确性;至于在圆形区域中采样k个像素点的具体位置,可以是随机的,也可以是控制指定的,而k的数量也可以任意确定,通常k的取值建议选取为3~10个即可。
7)统计判断当前一帧棋盘状态图像中围棋棋盘包含的被遮挡状态的落子点数量是否达到预设的被遮挡落子点限值;若是,则判定当前一帧棋盘状态图像不满足棋盘记谱更新条件,跳转执行步骤9;否则,则判定当前一帧棋盘状态图像满足棋盘记谱更新条件,执行步骤8。
如果被判定为被遮挡状态的落子点数量过多,则表明当前一帧棋盘状态图像中被遮挡的区域较大,如果依此对棋盘状态进行更新并进行记谱,则很可能导致记谱数据出现较大误差,因此应当避免这种情况的出现。只有在统计判断当前一帧棋盘状态图像中围棋棋盘包含的被遮挡状态的落子点数量没有达到预设的被遮挡落子点限值时,才判定当前一帧棋盘状态图像满足棋盘记谱更新条件。被遮挡落子点限值是一个经验值,可以优选在2~10之间取值。
8)根据当前一帧棋盘状态图像中围棋棋盘的361个落子点位置各自的棋子状态,生成围棋棋谱,然后执行步骤9)。该步骤中,生成围棋棋谱的原则为:
对于围棋棋盘中原棋盘状态的落子点,记录为无棋子状态;对于围棋棋盘中白棋子和黑棋子状态的落子点记录其当前的落子点棋子状态(即白棋子状态的落子点记录为白棋子状态,黑棋子状态的落子点记录为黑棋子状态);对于围棋棋盘中被遮挡状态的落子点,读取前一次生成的围棋棋谱中相应落子点位置的棋子状态并加以记录;从而记录确定当前一帧棋盘状态图像中围棋棋盘的361个落子点位置各自的棋子状态,依据当前记录的各落子点的棋子状态,生成围棋棋谱。
对于据当前一帧棋盘状态图像的围棋棋盘中原棋盘状态、白棋子状态和黑棋子状态的落子点,其棋子状态的记录容易理解。而对于被遮挡状态的落子点,由于执行该步骤时被遮挡状态落子点的数量是小于被遮挡落子点限值的,即数量是非常少的,针对这种情况可以判断其相对于此前未发生变化,依据前一次生成的围棋棋谱中相应落子点位置的棋子状态来确定;这里需要说明的是,对于此前尚未生成过围棋棋谱的情况(例如在围棋棋局的最初阶段刚启动摄像头和图像处理装置开始进行记谱时),这种情况下,在实际处理时,可以预设一个中全部落子点为原棋盘状态的初始化围棋棋谱(即全空棋谱),将该初始化围棋棋谱视为按照该步骤8)第一次生成围棋棋谱之前一次生成的围棋棋谱。当然,也可以采用其它的处理方式,可以根据实际应用情况和本领域技术人员的处理习惯而定。
9)返回执行步骤4)。以获取下一帧包含围棋棋盘图像的棋盘状态图像。
10)重复循环执行步骤4)~9),直至围棋记谱处理结束。由此,便可以持续地实时更新生成的围棋棋谱,实现持续更新记谱功能。
综上所述,可以看到,本发明基于图像识别的围棋记谱处理方法,通过摄像头固定拍摄围棋棋盘,由图像处理装置从摄像头获取包含围棋棋盘的图像数据,并执行围棋记谱处理,摆脱了人工记录的繁琐,同时也消除了人工记谱过程中人为因素可能带来的干扰;并且,本发明的围棋记谱处理方法完全通过图像处理来实现围棋棋谱状态的识别和记谱,不需要针对围棋棋盘和棋子作特殊处理,也不需要昂贵的棋盘、棋子设施,能够在任意的围棋棋局场合中得以普遍适用,有利于大规模推广;不仅如此,其记谱处理过程采用的图像处理技术计算处理都较为简单,并且在很多细节处理流程上作了针对性的简化,有助于减少整体处理的数据处理量,使得其记谱工作在保证了较高准确性的情况下还能够达到很好的实时性。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (5)
1.一种基于图像识别的围棋记谱处理方法,其特征在于,通过摄像头固定拍摄围棋棋盘,且摄像头正对围棋棋盘盘面的中心位置,由图像处理装置从摄像头获取包含围棋棋盘的图像数据,并执行围棋记谱处理;所述图像处理装置执行围棋记谱处理的流程包括如下步骤:
1)预先从摄像头获取包含空白围棋棋盘完整图像的一帧棋盘原始图像;
2)通过图像识别处理,确定棋盘原始图像中围棋棋盘的各个星位的图像位置坐标,并确定围棋棋盘的天元位置的图像位置坐标;
3)根据棋盘原始图像中围棋棋盘的各个星位的坐标间隔距离以及天元位置的图像位置坐标,确定摄像头拍摄图像画面中围棋棋盘的每个棋盘格的纵向像素长度和横向像素宽度,以及围棋棋盘的361个落子点的图像位置坐标;
4)从摄像头获取包含围棋棋盘图像的一帧棋盘状态图像;
5)将摄像头拍摄图像画面中围棋棋盘的361个落子点的图像位置坐标设定为当前一帧棋盘状态图像中围棋棋盘的361个落子点的图像位置坐标,通过图像识别处理,分别判断当前一帧棋盘状态图像中围棋棋盘的361个落子点位置为原棋盘状态还是非原棋盘状态;所述原棋盘状态是指落子点位置处于没有棋子且未被遮挡状态,所述非原棋盘状态是指落子点位置处于有棋子或者被遮挡状态;
6)分别对当前一帧棋盘状态图像中围棋棋盘的各个非原棋盘状态的落子点位置进行黑棋子状态、白棋子状态和被遮挡状态的识别区分;
7)统计判断当前一帧棋盘状态图像中围棋棋盘包含的被遮挡状态的落子点数量是否达到预设的被遮挡落子点限值;若是,则判定当前一帧棋盘状态图像不满足棋盘记谱更新条件,跳转执行步骤9;否则,则判定当前一帧棋盘状态图像满足棋盘记谱更新条件,执行步骤8;
8)根据当前一帧棋盘状态图像中围棋棋盘的361个落子点位置各自的棋子状态,生成围棋棋谱,然后执行步骤9);生成围棋棋谱的原则为:
对于围棋棋盘中原棋盘状态的落子点,记录为无棋子状态;对于围棋棋盘中白棋子和黑棋子状态的落子点记录其当前的落子点棋子状态;对于围棋棋盘中被遮挡状态的落子点,读取前一次生成的围棋棋谱中相应落子点位置的棋子状态并加以记录;从而记录确定当前一帧棋盘状态图像中围棋棋盘的361个落子点位置各自的棋子状态,依据当前记录的各落子点的棋子状态,生成围棋棋谱;
9)返回执行步骤4);
10)重复循环执行步骤4)~9),直至围棋记谱处理结束。
2.根据权利要求1所述基于图像识别的围棋记谱处理方法,其特征在于,所述步骤2具体为:
21)对获取到的棋盘原始图像进行二值化处理,得到二值化图像;
22)对二值化图像进行膨胀和腐蚀处理;
23)将膨胀、腐蚀后的二值化图像中的9个黑色圆点位置确定为棋盘原始图像的9个星位,其中最中间一个星位即确定为天元位置;由此,确定棋盘原始图像中各个星位和天元位置的图像位置坐标。
3.根据权利要求1所述基于图像识别的围棋记谱处理方法,其特征在于,所述步骤3具体为:
31)统计棋盘原始图像中每横向相邻两个星位的图像坐标间隔距离和每纵向相邻两个星位的图像坐标间隔距离,计算围棋棋盘中每个棋盘格的纵向像素长度和横向像素宽度:
Gw=EHi/6/nH;
Gh=EVi/6/nV;
其中,Gw表示棋盘格的横向像素宽度,Gh表示棋盘格的纵向像素长度;EHi表示棋盘原始图像中各对纵向相邻两个星位的图像坐标间隔距离的和值,EVi表示棋盘原始图像中各对横向相邻两个星位的图像坐标间隔距离的和值;nH表示棋盘原始图像中纵向相邻两个星位的成对数,nV表示棋盘原始图像中横向相邻两个星位的成对数;
32)以棋盘原始图像中天元位置为中心,根据棋盘格的纵向像素长度和横向像素宽度,确定围棋棋盘中各个棋盘格的图像位置坐标;
33)将围棋棋盘中各个棋盘格的交叉点位置判定为落子点的位置,从而确定摄像头拍摄图像画面中围棋棋盘的各个落子点的图像位置坐标。
4.根据权利要求1所述基于图像识别的围棋记谱处理方法,其特征在于,所述步骤5具体为:
51)将摄像头拍摄图像画面中围棋棋盘的361个落子点的图像位置坐标设定为当前一帧棋盘状态图像中围棋棋盘的361个落子点的图像位置坐标,并对当前一帧棋盘状态图像进行二值化处理,得到当前帧二值化图像;
52)对于当前帧二值化图像中围棋棋盘上非边界位置的落子点,分别检测每个落子点的上、下、左、右位置处是否均存在黑色线条;若均存在,则判定该落子点为原棋盘状态;否则,判定该落子点为非原棋盘状态;
对于当前帧二值化图像中围棋棋盘上边界位置的落子点,分别检测每个落子点的上、下、左、右位置中的非边界方向位置处是否均存在黑色线条;若均存在,则判定该落子点为原棋盘状态;否则,判定该落子点为非原棋盘状态;
由此确定当前一帧棋盘状态图像中围棋棋盘的361个落子点位置为原棋盘状态还是非原棋盘状态。
5.根据权利要求1所述基于图像识别的围棋记谱处理方法,其特征在于,所述步骤6具体为:
61)对当前一帧棋盘状态图像进行灰度化处理,得到当前帧灰度图像;
62)对于当前帧灰度图像中围棋棋盘的一个非原棋盘状态的落子点,获取该落子点的区域图像;所述落子点的区域图像范围,是以落子点为中心、向左和向右各延伸半个棋盘格横向像素宽度、且向上和向下各延伸半个棋盘格纵向像素长度所覆盖的区域图像;
62)采用霍夫变换识别出该落子点的区域图像中是否存在圆形;若不存在,则判定该落子点位置为被遮挡状态;若存在,则继续执行步骤63);
63)判断落子点的区域图像中所存在的圆形是否同时满足如下两个条件:
①、圆形的半径Cr满足:Gav/3<Cr<4Gav/5;
②、圆形的圆心位置与当前落子点的间距Dcc满足:Dcc<Gav/3;
其中,Gav表示棋盘格的纵向像素长度和横向像素宽度的平均值,即Gav= (Gw+Gh)/2,Gw表示棋盘格的横向像素宽度,Gh表示棋盘格的纵向像素长度;
若不同时满足,则判定该落子点位置为被遮挡状态;若同时满足,则判定该落子点位置存在棋子,继续执行步骤64);
64)取落子点的区域图像中所存在的圆形区域中的k个像素点并求取像素灰度平均值,若求取得到的像素灰度平均值小于128灰度值,则判定该落子点位置为黑棋子状态;否则,判定该落子点位置为白棋子状态;
65)通过步骤62)~64)的处理流程对当前帧灰度图像中围棋棋盘的各个非原棋盘状态的落子点分别进行状态识别区分,从而确定当前一帧棋盘状态图像中围棋棋盘的每个非原棋盘状态的落子点为黑棋子状态、白棋子状态还是被遮挡状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510348323.4A CN104998405B (zh) | 2015-06-23 | 2015-06-23 | 一种基于图像识别的围棋记谱处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510348323.4A CN104998405B (zh) | 2015-06-23 | 2015-06-23 | 一种基于图像识别的围棋记谱处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104998405A CN104998405A (zh) | 2015-10-28 |
CN104998405B true CN104998405B (zh) | 2018-02-02 |
Family
ID=54371428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510348323.4A Active CN104998405B (zh) | 2015-06-23 | 2015-06-23 | 一种基于图像识别的围棋记谱处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104998405B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105664478A (zh) * | 2016-01-15 | 2016-06-15 | 上海斐讯数据通信技术有限公司 | 一种围棋棋局胜负裁判的方法及移动终端 |
KR101829123B1 (ko) * | 2016-04-04 | 2018-02-14 | 신 라파엘 | 카메라 센서를 이용한 바둑 계시 장치 및 방법 |
CN105956594A (zh) * | 2016-05-10 | 2016-09-21 | 浙江理工大学 | 一种对实物象棋棋子移动识别方法 |
CN106426165A (zh) * | 2016-09-29 | 2017-02-22 | 陕西科技大学 | 一种人机对弈五子棋机器人控制方法 |
CN107506701B (zh) * | 2017-08-08 | 2021-03-05 | 大连万和海拓文化体育产业有限公司 | 一种基于视频识别技术的围棋自动记谱方法 |
CN107730522A (zh) * | 2017-10-12 | 2018-02-23 | 中科视拓(北京)科技有限公司 | 一种基于图像的围棋棋谱识别方法 |
CN109145809B (zh) * | 2018-08-17 | 2022-03-08 | 腾讯科技(深圳)有限公司 | 一种记谱处理方法和装置以及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1157116A (ja) * | 1997-08-24 | 1999-03-02 | Tadao Fukuyama | 対局記録自動作成装置及び方法 |
CN101000654A (zh) * | 2006-12-31 | 2007-07-18 | 常熟理工学院 | 图像识别棋谱自动记录方法 |
CN102184544A (zh) * | 2011-05-18 | 2011-09-14 | 北京联合大学生物化学工程学院 | 校畸和识别围棋棋谱图像的方法 |
CN103623566A (zh) * | 2013-12-10 | 2014-03-12 | 上海国茂数字技术有限公司 | 围棋棋盘及围棋棋谱记录方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9195901B2 (en) * | 2012-04-10 | 2015-11-24 | Victor KAISER-PENDERGRAST | System and method for detecting target rectangles in an image |
-
2015
- 2015-06-23 CN CN201510348323.4A patent/CN104998405B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1157116A (ja) * | 1997-08-24 | 1999-03-02 | Tadao Fukuyama | 対局記録自動作成装置及び方法 |
CN101000654A (zh) * | 2006-12-31 | 2007-07-18 | 常熟理工学院 | 图像识别棋谱自动记录方法 |
CN102184544A (zh) * | 2011-05-18 | 2011-09-14 | 北京联合大学生物化学工程学院 | 校畸和识别围棋棋谱图像的方法 |
CN103623566A (zh) * | 2013-12-10 | 2014-03-12 | 上海国茂数字技术有限公司 | 围棋棋盘及围棋棋谱记录方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104998405A (zh) | 2015-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104998405B (zh) | 一种基于图像识别的围棋记谱处理方法 | |
CN106709909A (zh) | 一种基于深度学习的柔性机器人视觉识别与定位系统 | |
CN107766855A (zh) | 基于机器视觉的棋子定位方法、系统、存储介质及机器人 | |
US8210945B2 (en) | System and method for physically interactive board games | |
CN102794763A (zh) | 基于线结构光视觉传感器引导的焊接机器人系统标定方法 | |
US20160225137A1 (en) | System and method for object extraction | |
CN107392157B (zh) | 一种基于机器视觉的中国象棋比赛智能虚拟直播方法 | |
CN109822568B (zh) | 机器人控制方法、系统及存储介质 | |
CN107452028B (zh) | 一种确定目标图像位置信息的方法及装置 | |
CN108369091A (zh) | 图像处理装置和方法、数据及纪录介质 | |
CN108846819A (zh) | 激光切割参数获取方法及装置、电子设备、存储介质 | |
CN107154058B (zh) | 一种引导使用者还原魔方的方法 | |
CN102688587A (zh) | 射箭计分系统 | |
CN108615045A (zh) | 筛选胶囊内镜拍摄的图像的方法、装置及设备 | |
CN110322399A (zh) | 一种超声图像调整方法、系统、设备及计算机存储介质 | |
CN106919883A (zh) | 一种快速反应qr码的定位方法及装置 | |
CN116721031A (zh) | 用于补正球图像的亮度的方法、系统及非暂时性的计算机可读记录介质 | |
CN107103641A (zh) | 三维重建成像系统和三维重建成像方法 | |
CN112488207B (zh) | 一种基于仿真图像的高相似度零件视觉识别方法及系统 | |
Zannatha et al. | Monocular visual self-localization for humanoid soccer robots | |
CN108465224A (zh) | 乒乓球轨迹分析系统 | |
JP2006130123A (ja) | ゲーム装置及び,これにおいて実行されるゲームプログラム | |
CN110969113B (zh) | 一种鱼漂状态辅助判断系统及方法 | |
CN107813321A (zh) | 一种五子棋机器人控制方法 | |
CN108634241A (zh) | 点卤方法及其点卤系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |