一种自动寻迹记录围棋棋谱智能小车及方法与流程

文档序号:21369380发布日期:2020-07-04 04:45阅读:517来源:国知局
一种自动寻迹记录围棋棋谱智能小车及方法与流程

本发明涉及自动录棋设备技术领域,特别涉及一种基于认知无线电自适应频谱感知与分配方法。



背景技术:

作为一个拥有五千年文化底蕴的国家,围棋是中国古老的文化遗产,从诞生距今两千多年而不衰。从先秦到唐代,围棋在人们现实生活中和精神世界都扮演着重要的角色,上到帝王将相,下至黎民百姓都享受着围棋带来的乐趣。我们如今的生活也深受围棋的影响:比如一些东西摆列无序,参差不齐,我们会称之为“星罗棋布”;对于一件事情拿不定主意,左右为难,我们称之为“举棋不定”;人们常用的俗语“当局者迷,旁观者清”最初即是描写围棋的场面......总而言之,围棋一直是重要的娱乐活动之一,但是围棋拥有这么悠久的历史,流传下来的棋谱却是寥寥无几。

围棋棋谱记录设备是保存围棋对弈棋局的重要设备,棋谱是围棋知识的基本载体,在围棋训练、围棋史、出版等研究领域占据着举足轻重的地位,对于经典文化的传承发挥着重要的作用。随着围棋运动的推广以及信息技术的发展,越来越多的棋谱开始被保存下来。海量的棋谱是宝贵的财富,如何能够实施准确的记录并且保存围棋棋谱成为社会讨论的热点。

目前,公知的最先进的围棋记录方法是采用一种基于图像的围棋棋谱识别方法,通过手机app记录所有着子点的状态信息得到棋谱数据。但是这对于棋谱的记录而言,依然需要操作者进行手动校准。除此之外,一部手机只能同时记录一盘棋谱,对于两盘棋谱而言,如果需要同时记录,则需要配置两部手机以及两套支架。这对于棋谱记录者而言,依然存在很大的不便。



技术实现要素:

为了解决背景技术中的技术问题,本发明提供一种自动寻迹记录围棋棋谱智能小车及方法,改变了以往采用人工调节支架、手动进行棋谱校准的方法,大大的降低操纵者的劳动强度,是在自动化领域的一个重要突破,也是智能优化算法解决实际问题的突出体现。

为了达到上述目的,本发明采用以下技术方案实现:

一种自动寻迹记录围棋棋谱智能小车,包括行走台车、立杆、横杆、摄像头和控制器;行走台车下部设有行走轮,上部平台上安装立杆,立杆上部两侧各固定一个横杆,每个横杆上均安装一个摄像头;摄像头和行走台车的行走轮电机均与控制器电气连接,控制器接收摄像头的图像信号,控制行走轮电机移动寻找棋牌最佳录棋位置。

所述的一种自动寻迹记录围棋棋谱智能小车的自动寻迹方法,包括棋盘位置确定、最佳录棋位置确定和行台车控制;

(一)所述棋盘位置确定包括如下步骤:

步骤1:图像采集;通过摄像头采集图像,并进行灰度处理;vareadimage函数用于读取采集到的现场图像;vanoisereduce函数用于对图像进行低通滤波器以降低噪声和干扰带来的影响;以尽可能的将非棋盘信息排除在外;

步骤2:棋盘特征提取;棋盘特征提取流程如下:

1)首先读取待分析图像,并将灰度图像转换成二维数组,vaimageconversion函数用于将灰度图像转换成二维数组;vaextractth函数用于从图像中提取阈值,得到待分析图像的最大灰度值fmax;

2)如果fmax<f,即最大值小于设定的棋谱灰度阈值f,则排除该物体为棋谱的可能;若fmax>=f,即灰度最大值大于或等于设定的棋谱灰度阈值,则认为此处有可能是棋谱;

3)对疑似棋盘进行边缘特征提取,并且计算出疑似棋盘的面积大小m;vafeatureextraction函数用于提取棋谱的边缘特征;vafillhole函数用于填充棋谱边缘,以便于进行棋谱面积特征分析;若mmin<m或m>mmax,即面积不在设定的棋盘面积最大mmax和最小mmin阈值范围内,则排除疑似棋盘的嫌疑;若mmin<m<mmax,即面积在设定的阈值范围内,则将此确认为棋盘;

步骤3:棋盘位置确定;由棋盘边缘定位及棋盘面积计算出棋盘的具体位置;当像素值和面积特征均满足棋盘条件时,则发出棋盘确认信号。

(二)最佳录棋位置确定

小车上的两个摄像头能够同时对两个棋盘进行录制,因此需要找到小车在两个棋盘之间的最佳录制位置;包括如下步骤:

步骤1:完成采集图像和现场的坐标对应,图像采集处理器设置的图像采样大小为m*n,所对应的的现场平面的大小为a*h,则行距对应的空间位置大小为a/m,列距对应位置大小为h/n;

步骤2:处理器计算得到的两个棋谱的中心点位置分别为(x1,y1)、(x2,y2),即两个棋盘的中心点分别位于第x1、x2行,第y1、y2列;其对应的实际长度位置分别为l1=a*x1/m、l2=a*x2/m,宽度位置分别为d1=h*y1/n、d2=h*y2/n,进而可以求得小车的录棋的最佳位置为((l1+l2)/2,(d1+d2)/2)将此棋谱停留位置信息传输给控制器,即可以控制小车行走轮的步进电机找到棋盘的最佳录制点。

(三)行走台车控制

步骤1:首先,在控制器接收图像处理器传送来的物体识别的信息,如果出现了棋盘识别的信息,则行走台车启动,并按照图像处理器计算得到的棋盘坐标控制行走台车沿着x坐标方向运行;

步骤2:x方向到达以后,行走台车前轮转角90度,控制器控制行走台车开始沿着y坐标方向运行,y方向到达以后,即找到了棋盘的坐标位置;

步骤3:录棋装置启动开始录棋;在录制结束后,控制器控制行走台车首先沿着y坐标方向返回;y方向返回到达后,控制器控制行走台车沿着x方向返回,x方向到达后,即找到了行走台车的原点位置;

步骤4:行走台车停止等待下次棋盘的出现。

(四)还包括自动录棋方法,所述的自动录棋方法包括如下步骤:

步骤1:图像采集,通过调用vaequipmain函数用于完成摄像头对棋盘的校准、棋谱的名称以及大小的配置;vaangle函数用于完成对摄像头角度的调整至图像效果最佳时止;vacorrection函数完成对保存的棋谱图像进行矫正,保存经过矫正失真的参数和经过矫正的图像;vabrightness函数用于完成对矫正后的图像亮度进行调整吗,以便于计算机能够识别出棋盘上的各条网格线,调整完毕后保存经过调整的网格数组参数;vacapturechart用于完成棋谱的的连续采集;varesample函数用于实现图像的重采样配置;vasave函数用于完成图像的保存;varelease函数用于释放内存空间;

步骤2:图像灰度处理;

步骤3:图像的滤波处理;由于棋盘上存在一些污垢或者摄像头上存在感光颗粒噪声等影响,导致采集到的图像上存在一定的噪声,经灰度处理后噪声依然存在;噪声的存在会影响下一步的图像处理,需滤除噪声;采用开运算进行消噪处理,首先进行腐蚀,腐蚀的算子大小取3*3,消除小于棋子或棋盘的点,再利用膨胀恢复图像;经过开运算,处理后的灰度图像完整的保留了棋盘框架结构等符合结构元素的几何性质的部分,其它的噪声像素被消除;

步骤4:图像旋转处理;由于两边摄像头的摆放只保证了与棋盘面的相对水平和通过界面能完整的看到棋盘,并不能保证釆集到的图像是正放的,事实证明釆集到的图像大多存在一定角度的旋转,需要对图像进行水平旋转旳;首先使用vafindedge函数对图像进行从左到右的边沿查找,搜索的宽度为3,釆用双线性固定bilinearfixed插值方法定位边缘位置;找到左侧边沿后可以得出该边沿与水平线的角度值,然后调用varotate函数将图像旋转到正确位置,矫正后有空白的地方用像素值为148的颜色填补;

步骤5:图像的分割和缩放处理;图像分割首先要利用边沿检测提取棋盘的4个边沿,首先检测左侧边沿上的若干个点,比较确定两个最标准的点,然后计算其横坐标的平均值,并作为左侧边缘上的横坐标点,同理计算右侧边沿上的横坐标点和上下两侧边沿的纵坐标点,利用4点就可以得出整个棋盘的边沿;程序中可以通过直线与水平线的角度值判断提取边沿是否合理;

使用边沿检测能增加抗干扰能力,下棋时人的手臂会遮挡住棋盘的边沿,只要被遮挡的边沿长度不超过总长的1/2,该算法依旧能很好的提取图像的边沿;

由于边沿上的棋子有一定的半径,因此利用边沿检测得到的坐标不能直接对图像进行分割;经过反复地测试,确定棋盘边沿外扩13个像素点后进行分割可以保证落在棋盘边缘的棋子完整显示和识别;使用函数vaextracttetragon对图像进行分割,并对分割后的图像进行缩放;缩放后的图像大小为480像素*480像素;

步骤6:围棋盘面状态的确认

对围棋盘面的识别方法是通过对获取的围棋盘面的一帧图像进行色彩增强、灰化处理、拉普拉斯变换操作对图像进行预处理操作;对生成预处理后的图像信息进行数据提取,得到生成该帧图像的像素矩阵,同时还需要对棋盘线条进行图像识别,确定该帧图像中所有可识别的线,生成样本线,然后对样本线进行直接拟合、加权拟合以及ransac拟合确定一个方向的棋盘线,接着将同方向上的其余棋盘线进行删除,在将剩余的样板线进行按照次次序进行直接拟合、加权拟合以及ransac拟合确定另外一个方向的棋盘线;

步骤7:棋子位置确认

对获取的围棋盘面的一帧图像进行预处理生成预处理后的图像数据,采用聚类的方法将预处理后的图像数据进行聚类处理,生成聚类结果,将该结果分为三类:分别表示为棋盘中的白色点、黑色点以及空白点;对所述预处理后的图像数据惊醒图像识别,确定该帧图像中所有可识别的线生成样本线,对于该样本线进行拟合处理,确定棋盘上两个方向上的棋盘线,将确定两个方向上的棋盘线进行相交,确定棋盘的交点坐标;根据聚类结果和棋盘上棋盘线的交点坐标确定棋子的位置。

与现有技术相比,本发明的有益效果是:

记录围棋棋谱的为全自动记录方式,改变了以往采用人工调节支架、手动进行棋谱校准的方法,大大的降低操纵者的劳动强度,是在自动化领域的一个重要突破,也是智能优化算法解决实际问题的突出体现。它将采集到的数据进行深层次挖掘分析与研究,得到所需指标的最佳参数区间,使得参数指标能够以最大概率落入理想区间,然后利用所得的最佳参数指导小车的运转,达到准确实时记录围棋棋谱的目的。该小车具有工作稳定、结构简单、功能多样、操作方便、记录棋谱准确等优点。

附图说明

图1是本发明的一种自动寻迹记录围棋棋谱智能小车结构示意图;

图2是本发明的一种自动寻迹记录围棋棋谱智能小车结构侧视图;

图3是本发明的一种自动寻迹记录围棋棋谱智能小车结构俯视图;

图4是本发明的一种自动寻迹记录围棋棋谱智能小车控制结构图;

图5是本发明的棋盘位置确定方法流程图;

图6是本发明的自动录棋方法流程图。

图中:1-行走台车2-立杆3-摄像头4-横杆。

具体实施方式

以下结合附图对本发明提供的具体实施方式进行详细说明。

如图1-3所示,一种自动寻迹记录围棋棋谱智能小车,包括行走台车1、立杆2、横杆4、摄像头3和控制器;行走台车1下部设有行走轮,上部平台上安装立杆2,立杆2上部两侧各固定一个横杆4,每个横杆4上均安装一个摄像头3;摄像头3和行走台车1的行走轮电机均与控制器电气连接,控制器接收摄像头3的图像信号,控制行走轮电机移动寻找棋牌最佳录棋位置。

如图4所示,为整个系统的硬件结构组成,高清摄像头3负责搜集棋盘摆放实时情况,利用c#中配备的图像处理算法函数对采集到的实时图像进行处理,用来记录棋盘的摆放的位置。同时,通过opc通信技术将得到的棋盘的位置信息实时传输给处理器。plc控制器根据处理器提供的棋盘位置信息,控制自动寻迹装置找到录制棋谱的最佳位置,并启动录棋装置进行对棋谱的记录。其中自动录棋装置由两台步进电机驱动。

所述的一种自动寻迹记录围棋棋谱智能小车的自动寻迹方法,包括棋盘位置确定、最佳录棋位置确定和行台车控制;

(一)如图5所示,所述棋盘位置确定包括如下步骤:

步骤1:图像采集;通过摄像头采集图像,并进行灰度处理;vareadimage函数用于读取采集到的现场图像;vanoisereduce函数用于对图像进行低通滤波器以降低噪声和干扰带来的影响;以尽可能的将非棋盘信息排除在外;

步骤2:棋盘特征提取;棋盘特征提取流程如下:

1)首先读取待分析图像,并将灰度图像转换成二维数组,vaimageconversion函数用于将灰度图像转换成二维数组;vaextractth函数用于从图像中提取阈值,得到待分析图像的最大灰度值fmax;

2)如果fmax<f,即最大值小于设定的棋谱灰度阈值f,则排除该物体为棋谱的可能;若fmax>=f,即灰度最大值大于或等于设定的棋谱灰度阈值,则认为此处有可能是棋谱;

3)对疑似棋盘进行边缘特征提取,并且计算出疑似棋盘的面积大小m;vafeatureextraction函数用于提取棋谱的边缘特征;vafillhole函数用于填充棋谱边缘,以便于进行棋谱面积特征分析;若mmin<m或m>mmax,即面积不在设定的棋盘面积最大mmax和最小mmin阈值范围内,则排除疑似棋盘的嫌疑;若mmin<m<mmax,即面积在设定的阈值范围内,则将此确认为棋盘;

步骤3:棋盘位置确定;由棋盘边缘定位及棋盘面积计算出棋盘的具体位置;当像素值和面积特征均满足棋盘条件时,则发出棋盘确认信号。

(二)最佳录棋位置确定

小车上的两个摄像头能够同时对两个棋盘进行录制,因此需要找到小车在两个棋盘之间的最佳录制位置;包括如下步骤:

步骤1:完成采集图像和现场的坐标对应,图像采集处理器设置的图像采样大小为m*n,所对应的的现场平面的大小为a*h,则行距对应的空间位置大小为a/m,列距对应位置大小为h/n;

步骤2:处理器计算得到的两个棋谱的中心点位置分别为(x1,y1)、(x2,y2),即两个棋盘的中心点分别位于第x1、x2行,第y1、y2列;其对应的实际长度位置分别为l1=a*x1/m、l2=a*x2/m,宽度位置分别为d1=h*y1/n、d2=h*y2/n,进而可以求得小车的录棋的最佳位置为((l1+l2)/2,(d1+d2)/2)将此棋谱停留位置信息传输给控制器,即可以控制小车行走轮的步进电机找到棋盘的最佳录制点。

(三)行走台车控制

步骤1:首先,在控制器接收图像处理器传送来的物体识别的信息,如果出现了棋盘识别的信息,则行走台车启动,并按照图像处理器计算得到的棋盘坐标控制行走台车沿着x坐标方向运行;

步骤2:x方向到达以后,行走台车前轮转角90度,控制器控制行走台车开始沿着y坐标方向运行,y方向到达以后,即找到了棋盘的坐标位置;

步骤3:录棋装置启动开始录棋;在录制结束后,控制器控制行走台车首先沿着y坐标方向返回;y方向返回到达后,控制器控制行走台车沿着x方向返回,x方向到达后,即找到了行走台车的原点位置;

步骤4:行走台车停止等待下次棋盘的出现。

(四)还包括自动录棋方法,如图6所示,所述的自动录棋方法包括如下步骤:

步骤1:图像采集,通过调用vaequipmain函数用于完成摄像头对棋盘的校准、棋谱的名称以及大小的配置;vaangle函数用于完成对摄像头角度的调整至图像效果最佳时止;vacorrection函数完成对保存的棋谱图像进行矫正,保存经过矫正失真的参数和经过矫正的图像;vabrightness函数用于完成对矫正后的图像亮度进行调整吗,以便于计算机能够识别出棋盘上的各条网格线,调整完毕后保存经过调整的网格数组参数;vacapturechart用于完成棋谱的的连续采集;varesample函数用于实现图像的重采样配置;vasave函数用于完成图像的保存;varelease函数用于释放内存空间;

步骤2:图像灰度处理;通过处理器界面实时显示图像,为了提高运行速度,将16位的彩色图像转换成8位的灰度图像;

步骤3:图像的滤波处理;由于棋盘上存在一些污垢或者摄像头上存在感光颗粒噪声等影响,导致采集到的图像上存在一定的噪声,经灰度处理后噪声依然存在;噪声的存在会影响下一步的图像处理,需滤除噪声;采用开运算进行消噪处理,首先进行腐蚀,腐蚀的算子大小取3*3,消除小于棋子或棋盘的点,再利用膨胀恢复图像;经过开运算,处理后的灰度图像完整的保留了棋盘框架结构等符合结构元素的几何性质的部分,其它的噪声像素被消除;

步骤4:图像旋转处理;由于两边摄像头的摆放只保证了与棋盘面的相对水平和通过界面能完整的看到棋盘,并不能保证釆集到的图像是正放的,事实证明釆集到的图像大多存在一定角度的旋转,需要对图像进行水平旋转旳;首先使用vafindedge函数对图像进行从左到右的边沿查找,搜索的宽度为3,釆用双线性固定bilinearfixed插值方法定位边缘位置;找到左侧边沿后可以得出该边沿与水平线的角度值,然后调用varotate函数将图像旋转到正确位置,矫正后有空白的地方用像素值为148的颜色填补;

步骤5:图像的分割和缩放处理;图像分割首先要利用边沿检测提取棋盘的4个边沿,首先检测左侧边沿上的若干个点,比较确定两个最标准的点,然后计算其横坐标的平均值,并作为左侧边缘上的横坐标点,同理计算右侧边沿上的横坐标点和上下两侧边沿的纵坐标点,利用4点就可以得出整个棋盘的边沿;程序中可以通过直线与水平线的角度值判断提取边沿是否合理;

使用边沿检测能增加抗干扰能力,下棋时人的手臂会遮挡住棋盘的边沿,只要被遮挡的边沿长度不超过总长的1/2,该算法依旧能很好的提取图像的边沿;

由于边沿上的棋子有一定的半径,因此利用边沿检测得到的坐标不能直接对图像进行分割;经过反复地测试,确定棋盘边沿外扩13个像素点后进行分割可以保证落在棋盘边缘的棋子完整显示和识别;使用函数vaextracttetragon对图像进行分割,并对分割后的图像进行缩放;缩放后的图像大小为480像素*480像素;

步骤6:围棋盘面状态的确认

对围棋盘面的识别方法是通过对获取的围棋盘面的一帧图像进行色彩增强、灰化处理、拉普拉斯变换操作对图像进行预处理操作;对生成预处理后的图像信息进行数据提取,得到生成该帧图像的像素矩阵,同时还需要对棋盘线条进行图像识别,确定该帧图像中所有可识别的线,生成样本线,然后对样本线进行直接拟合、加权拟合以及ransac拟合确定一个方向的棋盘线,接着将同方向上的其余棋盘线进行删除,在将剩余的样板线进行按照次次序进行直接拟合、加权拟合以及ransac拟合确定另外一个方向的棋盘线;

步骤7:棋子位置确认

对获取的围棋盘面的一帧图像进行预处理生成预处理后的图像数据,采用聚类的方法将预处理后的图像数据进行聚类处理,生成聚类结果,将该结果分为三类:分别表示为棋盘中的白色点、黑色点以及空白点;对所述预处理后的图像数据惊醒图像识别,确定该帧图像中所有可识别的线生成样本线,对于该样本线进行拟合处理,确定棋盘上两个方向上的棋盘线,将确定两个方向上的棋盘线进行相交,确定棋盘的交点坐标;根据聚类结果和棋盘上棋盘线的交点坐标确定棋子的位置。

以上实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于上述的实施例。上述实施例中所用方法如无特别说明均为常规方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1