一种基于目标轮廓与骨架特征的机器人象棋开局摆棋方法和系统与流程

文档序号:15700883发布日期:2018-10-19 19:49阅读:316来源:国知局

本发明涉及机器视觉检测领域,特别涉及一种基于目标轮廓与骨架特征的机器人象棋开局摆棋方法和系统。



背景技术:

随着社会的不断发展和科技的不断进步,以中国象棋机器人为代表的娱乐服务型机器人,逐渐成为机器人研究领域的热点之一。传统的象棋机器人常常采用非视觉的定位和识别方法,通过定制特殊棋子和电子棋盘,通过硬件电路来实现棋子定位与识别。

经查阅相关文献,论文:“基于avr单片机的机器人控制器设计”(张永德,毕津滔)采用特制不同电阻值的棋子与设计电子棋盘的方式,通过电子棋盘进行棋子的定位与识别;论文“基于arm嵌入式linux的象棋机器人控制系统研究”(庄剑毅)采用透明材质的棋子,例如玻璃等,使用带有光敏电阻的电子棋盘进行棋子的定位与识别;专利“一种基于实物棋盘人机对弈象棋机器人装置”(江兴方,徐瑞平,陈路等)给棋盘上的每个棋位添加霍尔元件,通过棋子移动带来的电平输出高低不同来获取棋子移动信息;专利“象棋机器人的棋盘识别装置”(林颖,庄剑毅)公开了在象棋棋位上添加电阻与相应的二极管、普通电阻等相关电子器件,通过棋子移动引起的电压电流变化来判断下棋的信息;专利“一种象棋棋具及电气开局摆棋方法”(徐友武,吕杰,王斌等)公开了通过使用磁性金属材料特制的棋子来记录棋子信息,从而实现开局摆棋功能。但是都存在的不足之处具体体现在以下几个方面:

(1)棋子的定位依靠特制棋盘或特制棋子,无法做到任意普通棋子的定位和开局阶段全自动摆棋功能;

(2)象棋机器人系统中需要添加额外的传感器或者电子器件和电子线路,增加了系统开发成本和复杂度;

(3)象棋机器人人机对弈智能化程度不高。



技术实现要素:

针对现有象棋机器人在开局摆棋阶段存在的未经过特制的普通棋盘与棋子定位与识别问题,本发明开发了一种基于目标轮廓与骨架特征的机器人象棋开局摆棋方法和系统,实现了人机对弈开局阶段机器人全自动摆棋功能,即:在未经定制的棋盘与棋子上,实现从测量定位棋子位置、棋子字符信息识别到机械臂执行棋子移动完成摆棋的全自动控制过程。

一种基于目标轮廓与骨架特征的机器人象棋开局摆棋方法,包括以下步骤:

步骤1:从棋子放置区域正上方采集放置有棋子的待摆棋图像;

步骤2:对待摆棋图像进行圆检测,获取每个棋子圆心在棋子放置区域上的初始坐标;

步骤3:利用每个棋子圆心的初始坐标对待摆棋图像中的单个棋子图像区域进行分割,得到单个棋子图像;

步骤4:对所有单个棋子图像进行颜色识别;

步骤5:对所有的单个棋子图像进行二值化处理后,再提取目标轮廓图和骨架图的hu不变矩特征向量;

步骤6:利用单个棋子图像的颜色选取对应颜色的棋子字符svm分类器,输入棋子图像对应的hu不变矩特征向量,获取棋子图像对应的字符;

所述棋子字符svm分类器是以相同颜色的不同棋子的目标轮廓图和骨架图的hu不变矩特征向量作为输入数据,棋子上的已知字符作为输出数据,对svm分类器进行训练获得;

象棋有两个颜色,棋子字符svm分类器有两个,分为红色和黑色;

步骤7:利用棋子图像对应的字符,依据棋子的开局规则,获取棋子开局时所在棋盘上的圆心设置位置作为棋子的终点位置坐标,将棋子的终点位置和圆心在棋子放置区域上的初始坐标,发送至机械臂控制中心,驱动机械臂移动至棋子圆心初始坐标抓取棋子至对应的终点位置;

所述控制中心将棋子圆心在棋子放置区域上的初始坐标和终点位置坐标转换到机械臂所在世界坐标系下的坐标。

棋子一开始放置在棋子放置区域,需要从棋子放置区域抓取至棋盘上;

进一步地,单个棋子图像的目标轮廓图的提取过程如下:

将单个棋子图像经过二值化处理后的二值化字符图像进行形态梯队处理,得到多个轮廓区域,依次遍历各个轮廓区域并计算其轮廓面积,以面积最大的轮廓区域,作为棋子上字符的目标轮廓图。

进一步地,单个棋子图像的骨架图的提取过程如下:

将单个棋子图像经过二值化处理后的二值化字符图按照zhang式细化算法进行以下两步处理

步骤a1:依次遍历二值化字符图中所有像素值为非零的前景像素点的8邻域像素点,对符合以下条件的前景像素点的像素值置零,对前景像素点的像素值进行更新:

2≤n(p1)≤6,s(p1)=1,p2*p4*p6=0,p4*p6*p8=0;

其中:p1表示前景像素点,p2-p9为以前景像素点p1作为中心像素点的8邻域像素点,p2为中心像素点正上方的像素点,且p2-p9按顺时针方向排列;

n(p1)表示作为中心像素点p1的8邻域像素点中灰度值为非零的前景像素的个数,s(p1)表示以逆时针顺序循环遍历p2-p9-p2,像素值从0到1跃变的累计次数;所有像素点的取值为0或1,0表示背景,1表示前景;

步骤a2:再次遍历经过步骤a1更新后的前景像素点,对符合以下条件的前景像素点的像素值置零,对前景像素点的像素值进行再次更新:

2≤n(p1)≤6,s(p1)=1,p2*p4*p8=0,p2*p6*p8=0;

若经过步骤a2后,没有前景像素点的像素值被置零,则以当前二值化图像作为细化后的骨架图像,提取该字符目标骨架图;否则,返回步骤a1,继续对前景像素点的像素值进行更新。

进一步地,所述目标轮廓图或骨架图的hu不变矩特征向量提取过程如下:

步骤b1:计算待提取hu不变矩特征向量图像的mpq矩和中心矩μpq:

其中,f(x,y)表示目标轮廓图或骨架图,大小为m×n,p和q为取值为0-3的整数,x0=m10/m00,y0=m01/m00;

步骤b2:对中心距进行归一化处理,得到归一化中心距:

步骤b3:利用二阶和三阶归一化中心距,计算待提取hu不变矩特征向量图像的hu不变矩组{φ1,φ2,φ3,φ4,φ5,φ6,φ7};

进一步地,对从待摆棋图像中提取的单个棋子圆心的初始坐标进行如下修正:

步骤c1:对得到的单个棋子图像的目标轮廓图中的轮廓,提取轮廓的最小外接圆,得到轮廓外接圆圆心在单个棋子图像中的像素坐标;

步骤c2:将轮廓外接圆圆心像素坐标与单个棋子图像的中心点像素坐标做差,得到棋子圆心像素坐标的修正量(x’,y’);

步骤c3:将得到的修正量(x’,y’)与单个棋子圆心的初始坐标相加,得到棋子圆心在棋子放置区域上修正后的初始坐标。

进一步地,所述棋子圆心在棋子放置区域上的初始坐标或修正后的初始坐标采用张正友标定法转换至标定板上的坐标系上,具体步骤如下:

步骤d1:在棋子放置区域放置标定板并调整位置,使标定板在棋子放置区域采集图像成水平位置;

步骤d2:以标定板中心角点为坐标原点,以与棋子放置区域采集图像中x轴平行方向为x轴,x值增大方向为正方向,以标定板格子横向长度为x轴单位刻度;以与棋子放置区域采集图像中y轴平行方向为y轴,y值增大方向为正方向,以标定板格子纵向长度为y轴单位刻度,建立直角坐标系;

步骤d3:将棋子圆心在棋子放置区域上的初始坐标或修正后的初始坐标与标定板中心原点像素坐标做差,计算得到棋子圆心在棋子放置区域上的初始坐标或修正后的初始坐标在标定板所在的直角坐标系中的位置坐标。

最后,将在标定板坐标系上的位置坐标转换值机械臂所在的世界坐标系中。

利用标定板对摆棋区域的坐标进行标定,标定一次后,在后续的摆棋过程中,只要摆棋区域不发生变化,则可直接利用标定板构建的直角坐标系,将棋子圆心在棋子放置区域上的初始坐标或修正后的初始坐标转换至标定板所在的直角坐标系中,无需再次进行标定;

进一步地,在进行二值化处理时,所使用的二值化阈值,采用均值化处理获得;

步骤e1:对单个棋子图像进行逐点遍历,计算其像素灰度均值:

其中,x、y分别为像素坐标,nr、nc分别为单个棋子图像像素行数和列数;

步骤e2:根据计算得到的像素灰度均值,构建均值化阈值k*t;

其中,k为比例系数,取值范围为(0,1)。

通过实验确定k取0.75时,字符二值化分割效果较好。

进一步地,单个棋子图像进行颜色识别的过程如下:

步骤f1:将单个棋子图像的rgb模型转化为hsv模型,记录单个棋子图像中每个像素点的h值;

步骤f2:依据不同颜色像素的h值范围,判断每个像素点的颜色;

利用不同像素的h(色调)值取值不同,可以判断像素颜色;

红色像素的h值范围:170—180;黑色像素的h值范围:103—106;

步骤f3:对单个棋子图像中分别属于红色和黑色像素的数量进行累加,得到整个棋子图像中红色和黑色像素的总数量:nr和nb;判断nr和nb的大小,以数量多的颜色作为棋子颜色。

一种基于目标轮廓与骨架特征的机器人象棋开局摆棋系统,包括棋子放置区域、棋盘、棋子与标定板、图像采集单元、机器人手臂执行单元及控制单元:

所述图像采集单元包括屏幕光源和摄像头,将平面光源设置于棋盘一侧,摄像头设置于棋子放置区域正上方,所述摄像头、平面光源以及机器人手臂执行单元均受控于控制单元;

所述控制单元采用上述的一种基于目标轮廓与骨架特征的机器人象棋开局摆棋方法对图像采集单元采集的图像进行处理后,对机器人手臂执行单元发出控制指令,将棋子从标定板上抓取,放至棋盘上,进行自动摆棋。

利用标定板对摆棋区域的坐标进行标定,标定一次后,在后续的摆棋过程中,只要摆棋区域不发生变化,则可直接利用标定板构建的直角坐标系,将棋子圆心在棋子放置区域上的初始坐标或修正后的初始坐标转换至标定板所在的直角坐标系中,无需再次进行标定;

进一步地,所述机器人手臂执行单元采用uarm四自由度机械臂,且机械臂末端设置有吸盘。

有益效果

与现有技术相比,本发明的优点在于:

(1)系统硬件平台简易

本发明的一种智能象棋机器人系统,组成简单,仅依靠摄像头进行图像采集,无需外加电子元件,更无需特制材料的棋子或棋盘。使得系统不复杂,平台的搭建工作容易完成。

(2)检测效果好

本发明提出的一种用于棋子圆心两次定位方法,定位准确度高、定位时间短,双重定位从而使得系统能够在正常外界环境下精确定位而不受外界因素干扰;以自主搭建的实验平台测试15mm直径象棋棋子定位结果显示:平均定位误差在0.5mm,平均定位时间在2.6ms,保证识别准确率在98%以上的情况下,棋子平均全流程运算时间在10ms左右。

(3)稳定性强

使用hu不变矩特征进行字符特征识别,不仅保证了字符识别过程中的旋转、平移和缩放不变性,使得系统识别稳定性强;而且hu矩计算量小,实时性强,能保证象棋机器人的实时准确识别。

附图说明

图1为本发明所述控制系统的硬件结构图;

图2为本发明所述控制方法流程总图;

图3是颜色识别流程示意图;

图4是均值阈值处理流程示意图;

图5是二次精确定位方法的流程示意图;

图6是二次精确定位方法的棋子定位中间效果图;

图7是zhang式骨架提取算法中3*3像素矩阵排列排列顺序示意图和s(p1)的计算方法;

图8是轮廓与骨架提取结果图。

具体实施方式

下面将结合附图和实施例对本发明做进一步的说明。

一种基于目标轮廓与骨架特征的机器人象棋开局摆棋方法,总体流程如图2所示,包括以下步骤:

步骤1:从棋子放置区域正上方采集放置有棋子的待摆棋图像;

步骤2:对待摆棋图像进行圆检测,获取每个棋子圆心在棋子放置区域上的初始坐标;

步骤3:利用每个棋子圆心的初始坐标对待摆棋图像中的单个棋子图像区域进行分割,得到单个棋子图像;

步骤4:对得到单个棋子图像进行颜色识别,如图3所示;

所述颜色识别具体步骤如下:

步骤f1:将单个棋子图像的rgb模型转化为hsv模型,记录单个棋子图像中每个像素点的h值;

步骤f2:依据不同颜色像素的h值范围,判断每个像素点的颜色;

利用不同像素的h(色调)值取值不同,可以判断像素颜色;

红色像素的h值范围:170—180;黑色像素的h值范围:103—106;

步骤f3:对单个棋子图像中分别属于红色和黑色像素的数量进行累加,得到整个棋子图像中红色和黑色像素的总数量:nr和nb;判断nr和nb的大小,以数量多的颜色作为棋子颜色。

步骤5:对得到单个棋子图像利用均值阈值进行二值化处理,如图4所示;

所述均值阈值处理的获取步骤如下:

步骤e1:对单个棋子图像进行逐点遍历,计算其像素灰度均值:

其中,x、y分别为像素坐标,nr、nc分别为单个棋子图像像素行数和列数;

步骤e2:根据计算得到的像素灰度均值,构建均值化阈值k*t;

其中,k为比例系数,取值范围为(0,1);

通过实验确定k取0.75时,字符二值化分割效果较好。

利用均值阈值进行二值化处理:

步骤6:对从待摆棋图像中提取的单个棋子圆心的初始坐标进行修正,得到棋子二次精确定位圆心坐标,如图5所示;

步骤c1:将得到的二值化字符图像进行形态梯度处理,使得字符各笔画之间相互连接,对形态梯度图进行轮廓提取,随后依次遍历各个轮廓并计算其轮廓面积,保留其中面积最大的轮廓作为目标轮廓;对得到的单个棋子图像的目标轮廓图中的轮廓,提取轮廓的最小外接圆,得到轮廓外接圆圆心在单个棋子图像中的像素坐标,二次精确定位处理中间效果图如图6所示;

步骤c2:将轮廓外接圆圆心像素坐标与单个棋子图像的中心点像素坐标做差,得到棋子圆心像素坐标的修正量(x’,y’);

步骤c3:将得到的修正量(x’,y’)与单个棋子圆心的初始坐标相加,得到棋子圆心在棋子放置区域上修正后的初始坐标。

步骤7:对圆心修正后的字符图像,进行基于目标轮廓与骨架的特征向量提取,得到每个棋子上字符的特征向量图;

单个棋子图像的骨架图的提取过程如下:

将单个棋子图像经过二值化处理后的二值化字符图按照zhang式细化算法进行以下两步处理

步骤a1:依次遍历二值化字符图中所有像素值为非零的前景像素点的8邻域像素点,对符合以下条件的前景像素点的像素值置零,对前景像素点的像素值进行更新:

2≤n(p1)≤6,s(p1)=1,p2*p4*p6=0,p4*p6*p8=0;

其中:p1表示前景像素点,p2-p9为以前景像素点p1作为中心像素点的8邻域像素点,p2为中心像素点正上方的像素点,且p2-p9按顺时针方向排列;

n(p1)表示作为中心像素点p1的8邻域像素点中灰度值为非零的前景像素的个数,s(p1)表示以逆时针顺序循环遍历p2-p9-p2,像素值从0到1跃变的累计次数;所有像素点的取值为0或1,0表示背景,1表示前景;

3*3像素矩阵排列顺序和s(p1)的计算方法如图7所示;

步骤a2:再次遍历经过步骤a1更新后的前景像素点,对符合以下条件的前景像素点的像素值置零,对前景像素点的像素值进行再次更新:

2≤n(p1)≤6,s(p1)=1,p2*p4*p8=0,p2*p6*p8=0;

若经过步骤a2后,没有前景像素点的像素值被置零,则以当前二值化图像作为细化后的骨架图像,提取该字符目标骨架图;否则,返回步骤a1,继续对前景像素点的像素值进行更新,最终轮廓与骨架提取结果图如图8所示。

所述目标轮廓图或骨架图的hu不变矩特征向量提取过程如下:

步骤b1:计算待提取hu不变矩特征向量图像的mpq矩和中心矩μpq:

其中,f(x,y)表示目标轮廓图或骨架图,大小为m×n,p和q为取值为0-3的整数,x0=m10/m00,y0=m01/m00;

步骤b2:对中心距进行归一化处理,得到归一化中心距:

步骤b3:利用二阶和三阶归一化中心距,计算待提取hu不变矩特征向量图像的hu不变矩组{φ1,φ2,φ3,φ4,φ5,φ6,φ7};

目标轮廓图与骨架图共可得到14个hu不变矩特征向量;

将字符的14个特征向量横向排列,形成棋子上字符的特征向量图。

步骤8:对得到的特征向量图,按红、黑两色分为两类,每类各包括7种字符,分别为红色:“兵”、“馬”、“車”、“相”、“仕”、“炮”和“帥”7个,黑色:“卒”、“馬”、“車”、“象”、“士”、“砲”和“将”7个,将各自颜色的特征向量图送入svm多分类器中进行训练,得到红、黑两色的字符分类器备用;

步骤9:对提取得到的特征向量图,按不同颜色信息,分别送入得到的红或黑色分类器中,得到字符信息,随后根据象棋开局棋子摆放规则,得到该字符棋子在开局时在棋盘的位置及世界坐标;

步骤10:将棋子初始位置的世界坐标和对应棋盘位置的世界坐标通过串口通信传输给机械臂,象棋机器人的手臂执行端将初始位置上的棋子摆放到对应棋盘位置上,完成摆棋功能。

如图1所示,一种基于目标轮廓与骨架特征的机器人象棋开局摆棋系统,包括棋子放置区域、棋盘、棋子与标定板、图像采集单元、机器人手臂执行单元及控制单元:

所述图像采集单元包括屏幕光源和摄像头,将平面光源设置于棋盘一侧,摄像头设置于棋子放置区域正上方,所述摄像头、平面光源以及机器人手臂执行单元均受控于控制单元;

所述控制单元采用上述的一种基于目标轮廓与骨架特征的机器人象棋开局摆棋方法对图像采集单元采集的图像进行处理后,对机器人手臂执行单元发出控制指令,将棋子从标定板上抓取,放至棋盘上,进行自动摆棋。

利用标定板对摆棋区域的坐标进行标定,标定一次后,在后续的摆棋过程中,只要摆棋区域不发生变化,则可直接利用标定板构建的直角坐标系,将棋子圆心在棋子放置区域上的初始坐标或修正后的初始坐标转换至标定板所在的直角坐标系中,无需再次进行标定;

所述机器人手臂执行单元采用uarm四自由度机械臂,且机械臂末端设置有吸盘。

本文中所描述的具体实施例仅仅是对本发明精神做距离说明。本发明所述技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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