一种基于图像识别的围棋记谱处理方法
【技术领域】
[0001]本发明涉及属于图像处理和模式识别技术领域,具体涉及一种基于图像识别的围棋记谱处理方法。
【背景技术】
[0002]现在的围棋记谱工作主要靠人工完成,存在诸多弊端。特别是围棋培训和围棋比赛中,参与人数众多,需要大量的人工进行记谱,费时、费力,且容易出现错误。因此,自动记谱装置,及其方法显得尤为必要。
[0003]专利CN101850178A公开了一种基于图像识别的自动计时记谱的围棋棋具。该器具包括:位于该围棋棋具上表面的棋盘面板和固定在该棋盘面板上方的摄像头,位于该围棋棋具内部的中央处理器和非易失性存储器,以及电源。该专利通过按键触发图像采集,并对触发时间和图像进行输出。但实际上,该专利仅仅保存原始图像,并没有对图像中的棋谱进行识别,无法实现自动复盘等与记谱相关的更多复杂功能,因此实际记谱工作依然需要依靠人工完成,难以避免人工记谱过程中人为因素可能带来的干扰。
[0004]专利CN104225908A公开了一种具有复盘功能的RFID围棋棋盘。该棋盘包括:若干RFID棋子,该些RFID棋子包括黑白两种,每颗棋子内部包含一 RFID近场标签;棋盘外壳,包含安装控制电路的防护壳体、棋盘支架及19X19的棋盘盘面,以及361个近场天线;通过近场天线对RFID棋子的读取,进行识别棋谱,从而实现围棋自动复盘功能。该专利需要361个近场天线的电路及其处理器,其复杂的电路结构决定了该棋盘造价成本较高,影响大规模推广。
【发明内容】
[0005]针对现有技术中存在的上述不足,本发明的目的在于提供一种基于图像识别的围棋记谱处理方法,用于通过图像识别处理自动完成对围棋棋盘的记谱工作,摆脱了人工记录的繁琐,同时也消除了人工记谱过程中人为因素可能带来的干扰,并且不需要昂贵的棋盘设施,记谱工作在保证了较高准确性的情况下还能够达到很好的实时性。
[0006]为实现上述目的,本发明采用的一个技术方案是:
一种基于图像识别的围棋记谱处理方法,通过摄像头固定拍摄围棋棋盘,由图像处理装置从摄像头获取包含围棋棋盘的图像数据,并执行围棋记谱处理;所述图像处理装置执行围棋记谱处理的流程包括如下步骤:
1)预先从摄像头获取包含空白围棋棋盘完整图像的一帧棋盘原始图像;
2)通过图像识别处理,确定棋盘原始图像中围棋棋盘的各个星位的图像位置坐标,并确定围棋棋盘的天元位置的图像位置坐标;
3)根据棋盘原始图像中围棋棋盘的各个星位的坐标间隔距离以及天元位置的图像位置坐标,确定摄像头拍摄图像画面中围棋棋盘的每个棋盘格的纵向像素长度和横向像素宽度,以及围棋棋盘的361个落子点的图像位置坐标; 4)从摄像头获取包含围棋棋盘图像的一帧棋盘状态图像;
5)将摄像头拍摄图像画面中围棋棋盘的361个落子点的图像位置坐标设定为当前一帧棋盘状态图像中围棋棋盘的361个落子点的图像位置坐标,通过图像识别处理,分别判断当前一帧棋盘状态图像中围棋棋盘的361个落子点位置为原棋盘状态还是非原棋盘状态;所述原棋盘状态是指落子点位置处于没有棋子且未被遮挡状态,所述非原棋盘状态是指落子点位置处于有棋子或者被遮挡状态;
6)分别对当前一帧棋盘状态图像中围棋棋盘的各个非原棋盘状态的落子点位置进行黑棋子状态、白棋子状态和被遮挡状态的识别区分;
7)统计判断当前一帧棋盘状态图像中围棋棋盘包含的被遮挡状态的落子点数量是否达到预设的被遮挡落子点限值;若是,则判定当前一帧棋盘状态图像不满足棋盘记谱更新条件,跳转执行步骤9;否则,则判定当前一帧棋盘状态图像满足棋盘记谱更新条件,执行步骤8 ;
8)根据当前一帧棋盘状态图像中围棋棋盘的361个落子点位置各自的棋子状态,生成围棋棋谱,然后执行步骤9);生成围棋棋谱的原则为:
对于围棋棋盘中原棋盘状态的落子点,记录为无棋子状态;对于围棋棋盘中白棋子和黑棋子状态的落子点记录其当前的落子点棋子状态;对于围棋棋盘中被遮挡状态的落子点,读取前一次生成的围棋棋谱中相应落子点位置的棋子状态并加以记录;从而记录确定当前一帧棋盘状态图像中围棋棋盘的361个落子点位置各自的棋子状态,依据当前记录的各落子点的棋子状态,生成围棋棋谱;
9)返回执行步骤4);
10)重复循环执行步骤4)~9),直至围棋记谱处理结束。
[0007]上述基于图像识别的围棋记谱处理方法中,具体而言,所述步骤2具体为:
21)对获取到的棋盘原始图像进行二值化处理,得到二值化图像;
22)对二值化图像进行膨胀和腐蚀处理;
23)将膨胀、腐蚀后的二值化图像中的9个黑色圆点位置确定为棋盘原始图像的9个星位,其中最中间一个星位即确定为天元位置;由此,确定棋盘原始图像中各个星位和天元位置的图像位置坐标。
[0008]上述基于图像识别的围棋记谱处理方法中,具体而言,所述步骤3具体为:
31)统计棋盘原始图像中每横向相邻两个星位的图像坐标间隔距离和每纵向相邻两个星位的图像坐标间隔距离,计算围棋棋盘中每个棋盘格的纵向像素长度和横向像素宽度:
Gw=EHl/6/nH;
Gh=EVi/6/nY;
其中,6?表示棋盘格的横向像素宽度,Gh表示棋盘格的纵向像素长度;EHl表示棋盘原始图像中各对纵向相邻两个星位的图像坐标间隔距离的和值,Evi表示棋盘原始图像中各对横向相邻两个星位的图像坐标间隔距离的和值;nH表示棋盘原始图像中纵向相邻两个星位的成对数,nv表示棋盘原始图像中横向相邻两个星位的成对数;
32)以棋盘原始图像中天元位置为中心,根据棋盘格的纵向像素长度和横向像素宽度,确定围棋棋盘中各个棋盘格的图像位置坐标;
33)将围棋棋盘中各个棋盘格的交叉点位置判定为落子点的位置,从而确定摄像头拍摄图像画面中围棋棋盘的各个落子点的图像位置坐标。
[0009]上述基于图像识别的围棋记谱处理方法中,具体而言,所述步骤5具体为:
51)将摄像头拍摄图像画面中围棋棋盘的361个落子点的图像位置坐标设定为当前一帧棋盘状态图像中围棋棋盘的361个落子点的图像位置坐标,并对当前一帧棋盘状态图像进行二值化处理,得到当前帧二值化图像;
52)对于当前帧二值化图像中围棋棋盘上非边界位置的落子点,分别检测每个落子点的上、下、左、右位置处是否均存在黑色线条;若均存在,则判定该落子点为原棋盘状态;否贝1J,判定该落子点为非原棋盘状态;
对于当前帧二值化图像中围棋棋盘上边界位置的落子点,分别检测每个落子点的上、下、左、右位置中的非边界方向位置处是否均存在黑色线条;若均存在,则判定该落子点为原棋盘状态;否则,判定该落子点为非原棋盘状态;
由此确定当前一帧棋盘状态图像中围棋棋盘的361个落子点位置为原棋盘状态还是非原棋盘状态。
[0010]上述基于图像识别的围棋记谱处理方法中,具体而言,所述步骤6具体为:
61)对当前一帧棋盘状态图像进行灰度化处理,得到当前帧灰度图像;
62)对于当前帧灰度图像中围棋棋盘的一个非原棋盘状态的落子点,获取该落子点的区域图像;所述落子点的区域图像范围,是以落子点为中心、向左和向右各延伸半个棋盘格横向像素宽度、且向上和向下各延伸半个棋盘格纵向像素长度所覆盖的区域图像;
62)采用霍夫变换识别出该落子点的区域图像中是否存在圆形;若不存在,则判定该落子点位置为被遮挡状态;若存在,则继续执行步骤63);
63)判断落子点的区域图像中所存在的圆形是否同时满足如下两个条件:
①、圆形的半径(;满足:Gav/3<Cr<4Gav/5 ;
②、圆形的圆心位置与当前落子点的间距满足:Dra〈Gav/3;
其中,Gav表示棋盘格的纵