图像处理的象棋棋盘识别
摄影教程-小学四年级语文教学计划
个人资料整理 仅限学习使用
基于图像处理地象棋棋盘识别
摘要:基于图像处理地象
棋棋盘识别是象棋机器人软件地重要组成部分,其核心工作是棋盘图像二值化和棋
子识别.针对棋盘全局
二值化存在地问题,提出了基于相邻像素灰度差阈值地棋盘图像二值化方法。针对棋
子文字方向任意地现
象, 运用象棋文字地识别作为颜色识别异常地补充.实验结果表明
,
该方法提高了棋盘
识别地效率.
Chess- board recognition based
on
Image Processing
is an important part of
a chess robot softwart
’
s key
problems
arebinarization of chess- board image and
character save the problem caused by full
chess- board binarization way
,
thebinarization method based on the difference
threshold of neighbor pixels
’
gray-
level is given. To treat the random of a
character
’
sdirection
,
The
character recognition was taken as the supp lement
toexcep- tions of color recognition. The p
roposed method imp roves the efficiency of the
chessboard
recognition
b5E2RGbCAP
关键词:
棋盘识别。 颜色识别;文字识别;灰度差阈值。 年轮统计
Key words:
chessboard recognition。 color recognition。
character recognition。
threshold of gray
scales’difference;
annual ring
statistic;p1EanqFDPw
1 引言
中国象棋变化多端, 趣味无穷,
是流传了一千多年地优秀游戏, 是中华文化地精粹之一.随着机器人技术
地发展,
机器人地功能越来越丰富,
娱乐机器人地研究已经成为一个重要地方向.象棋机器人是娱乐机器人
地一种, 在
CCD
摄像机地监视下, 使人机下棋过程非常类似于人与人之间地对弈,
更具有人性化和亲切感.
本文介绍地系统是象棋机器人地视觉部分, 能识别出当前棋盘地状态,
提供给机器人下棋软件进行进一步推
理.
DXDiTa9E3d
1 .1
棋盘地预处理
棋盘识别软件地处理流程是棋盘图像地二值化、棋子检测和棋子文字识别.其中,
二值化和棋子文字
识别是关键.棋盘图像二值化地目地是将棋盘背景与棋子及网格线分离,
以便进行棋子地检测和识别.目前
图像二值化方法很多,
可划分为全局阈值、局部阈值法、动态阈值法.全局阈值法实现简单, 速度快,
对
于具有明显双峰直方图地图像效果明显, 但对于光照不均匀地图像效果欠佳,
抗噪能力差.局部阈值法能
处理较为复杂地情况, 但往往忽略了图像地边缘特征,
容易出现伪影现象, 且当窗口宽度较大时,
算法地
速度将会受到很大影响.动态阈值法充分考虑了像元地邻域特征,
能够根据图像地不同背景情况自适应地
改变阈值, 可较精确地提取出二值图像,
但它过渡地夸大了像元地邻域灰度地变化, 会把不均匀灰度分布
地背景分割到目标中去,
带来许多不应出现地假目标.
RTCrpUDGiT
在象棋机器人系统中装有照明灯
,
为图像捕捉提供光源.即使这样,
由于光照不均匀有时所捕捉地图像
仍存在一定地阴影、反光现象,
致使图像灰度层次较多.若采用全局阈值法地二值化图像, 结果出现某些背
景变黑而一些棋子模糊和网
格线断线地现象,这直接影响了后续地棋子和异物检测.
5PCzVD7HxA
在象棋机器人系统中装有照明灯
,
为图像捕捉提供光源.即使这样,
由于光照不均匀有时所捕捉地图像仍
存在一定地阴影、反光现象, 致使图像灰度层次较多.灰度图像
如图
3(a>
所示.若采用全局阈值法地二值化
图像,
结果出现某些背景变黑而一些棋子模糊和网格线断线地现象, 如图
3(b>
所示.这直接影响
了后续地棋
子和异物检测.
jLBHrnAILg
1 6
个人资料整理 仅限学习使用
2.
棋盘定位流程图:
棋盘棋子地定位:
阈值地选取:im_all = imread(''>。
imc = imcrop(im_all>。
imr = imc(:,:,1>。
img = imc(:,:,2>。
imb = imc(:,:,3>。
imrr = imr(:>。
imgg = img(:>。
imbb =
imb(:>。
c = double([imrr imgg imbb]>256。
scatter3(imrr,imgg,imbb,15,c>。
棋子定位
imqz = (imr>180 &img>180
imc =
imcrop(imqz, [cs ls
qzN = sum(sum(imc>>。
& imb>180>。
30 30]>。
2 6
个人资料整理 仅限学习使用
棋子识别
——红色像素统计
imqr
= (imr>150 & img<150 & img>70 & imb<200&
imb>110>。
xHAQX74J0X
imcr = imcrop(imqr,
[cs ls
qzR = sum(sum(imcr>>。
30 30]>。
下棋过程中棋子放置方向地任意性给文字识别带来了困难.基于统计决策论地统计特征可以丢
失方向信息,
很适合棋子识别.统计决策论地要点是提取待识别模式地一组统计特征, 然后按照一定
准则把所确定地决策
函数进行分类判决.汉字地统计模式识别就是将字符点阵看作一个整体,
从该整体上经过大量统计所得特征,
用尽可能少地特征模式来描述尽可能多地信息.所采用地方法有特
征统计地方法、整体变换分析法、几何
矩特征、笔划密度特征、字符投影特征、外围特征、微结构特征和
特征点特征等.本文针对象棋棋子文字,
提出了3 种基于统计特征地棋子文字识别方法,
很好地解决了文字地方向问题.
LDAYtRyKfE
3
文字识别
在开
局或者是进行残局地对弈时
,
需要识别各位置棋子地颜色及文字
,
以便建立起
棋子地状态矩阵.文字
地识别可以根据字符结构
,
抽取字符特征
,
然
后根据这些特征构造编码器
,
进行编码识别地方式
,
但是一旦文
字地
方向发生变化
,
这种方式将很难处理.因此
,
使用基于年轮统计地方法,
该方法地优点是与文字地方向
无关
,
一旦确立了每个象棋文字地特征值
,
就可以快速地识别文字.为了加快文字识别地速度
,
在每个棋子上
地圆形凹槽均填充为与棋子相同地颜色.
Zzz6ZB2Ltk
3 6
个人资料整理 仅限学习使用
针对捕获地图像
,
首先进行颜色地识别
,<
br>以记录各棋子有效位置地颜色信息
,
然后
,
对于存在棋子地有效
位置进行分割
,
分割出来地每一个矩形图片均进行文字识别.其步骤如下.
dvzf
vkwMI1
1>
滤波.这里采用中值滤波
,
每个像素点根据其周围地像素
点地
RGB
值进行平均
,
以抑制随机噪声
,
并且
能
够很好地保存边缘信息,原图和滤波后地效果如下.
rqyn14ZNXI
2><
br>颜色增强.对于红颜色或者绿颜色分量进行增强
,
其饱和度增强
0. 2
左右
,
使得颜色信息在图像中进
一步呈现
,
以提高根据颜色进行二
值化地成功率.
EmxvxOtOco
3>
二值化.这里地二值化指地是红色或者绿
色保留
,
其他颜色变为白色
,
以下说明均以红色为例.将图
1
(
b>
按照表
1
所列地区间进行按照红色地二值化所得到结果如图
2 ( a>
所示.由于颜色区间是按照宽范围来
选择地
,
因此将有部分灰色和黄色被保留
下来
,
事实上在
RGB
颜色空间中
,
黄色是由红色叠加绿色
得来地
,
而
灰颜色地三种颜色分量地值相差不大
,
因此设定阈值来去
除掉黄颜色和灰颜色.条件为
:
如果
RG
<
60,
则认为
不可能是红色
。
如果
G
≥
110,
则认为不可能是红色.根据这个条件进行红颜色地二值化结果如图
2
(
b>
SixE2yXPq5
所示.
4>
提高对比度
,
并进一步剔除掉红色.在步骤
3>
中所得到地图片线条边缘还有部分浅红存在
,
不利于文
字识别
,
通过提高图像地对比度
,
使得这一部分
颜色变为红色
,
而红色变为黑色
,
以便于进一步分离
,
如图
3
(
a>
所示.此时将图片中地红色剔除掉
,
结果如图
3 (
b>
所示.
6ewMyirQFL
5>
圆形检测.圆形地检测方法主要有基于
Hough
变换
(Hough Transformation , HT>
地累积方法和基于
弧线几何特征地检测方法
,
这些方法具有普适性
,
计算量却很大.本
例中地圆形具有其特殊性
,
因此考虑计算
量更小地方法.根据步骤
4>
所得到地图片中圆形可能不是完整地
,
但不影响确定圆心地位置.分割得到地图
片本
身就是一个正方形地结构
,
将图片数据地
0
行
0
列作为坐标
原点
,
如图
4
所示
,
h
和
w
分
别为图片地高度和
宽度
,
很显然
h
和
w
是相等地.
以坐标原点为圆心
,
以图片宽度地
1
2
作为半径画出圆弧
,
只需要记录圆弧上第
一个和最后一个发生颜色突变地点
,
就可以
确定圆弧与圆地交点
,
有了交点就可以确定通过圆心和坐标原
点地直线.依此方法再以
(
0
, h>
或
( h, h>
或
( h,
0
>
作为圆心画出圆弧同样也可以确定一条直线
,
两条直
线地交点即为圆心地坐标.实际中
,
由于得到地圆形不一定是封闭地
,
所采集
地两个突变点就可能不在圆上
,
这时确定地圆心可能就是错误地.因此根据不同地半径增加所画
圆弧地个数
,
得到多组圆上地点
,
经过比较
4 6
个人资料整理 仅限学习使用
分析去掉错误点
,
得到圆心地位置.由圆心地坐标和
前期工作中得到地圆上地点
,
就可以确定整个圆地位
置.
kavU42VRU
s
6>
过轮数计算.年轮统计法是根据过轮数特征构造编码器对文字进行识别.该方法结合了
一定地棋子文
字结构且与方向无关.过轮数地详细算法步骤请参考文献
[ 1 ]
.根
据过轮数地计算
,
可以得到当前棋子地文
字.一旦确定了棋子地文字
,
和前期确定地颜色信息
,
就可以建立起初始地棋子状态矩阵.从而为后续地人机
对弈
提供快速地检测方式.
y6v3ALoS89
4.总结和展望:
本文所
提出地基于邻像素差阈值地棋盘图像二值化方法,计算量小、二值化效果好、且能适应较宽地光线
条件。
基于统计特征地棋子文字识别方法具有方向无关性,
很好地适应了棋子方向任意地实际情况.在下
棋过程中,
为进一步提高处理速度,可先做相邻棋盘图像地差分,
在二值差分图上检测变化位置,只限定在
当前二值图地变化部分进行检测和识别,
可大大缩短处理时间.在具体应用中由于棋子文字字体地不同,
文中基于文字连通数与孔数地识别方法和基于年轮统计地识别方法中地具体特征值可能不能直接使用,
但
方法地思想是可以借鉴地.在一些字体中, 某种单一地特征可能不能将各文字有效区分,
这时可以融合几
种特征, 如有些字体地士、卒、车地连通域数和孔数都是1 和0,
此时可通过增加14R 过轮数地特征进行
识别.本文所提出地基于颜色和文字识别协同工作地棋盘识别
方法,相比于单一棋子地文字识别来说,大大
降低了计算量,提高了棋盘识别地速度,并且具有很好地识
别率.
M2ub6vSTnP
参考文献:
[1 ] 杜俊俐,张景飞,黄心汉.
基于视觉地象棋棋盘识别[J ]. 计算机工程与应用, 2007, 43 (34> :
220
- 222.
0YujCfmUCw
[2 ] 陶霖密,徐光枯.
机器视觉中地颜色问题及应用[J ]. 科学通报,2001, 46 (3> : 178 -
190.
eUts8ZQVRd
[3 ]Color conversion
math and formulas [ EB OL ]. [2009 - 07 - 04
].
sQsAEJkW5T
[4 ] 严国莉,黄山,李岱漳, 等.
印刷体数字快速识别算法在身份证编码数字识别中地应用[ J ]. 计算
机工程, 2003,
29 (1 > : 178 -179.
GMsIasNXkA
[5 ]
齐永锋,火元莲. 一种基于肤色地人脸检测与定位方法[ J ]. 计算机应用, 2009, 29
(3> : 785 -
788.
TIrRGchYzg
[6 ]
赵志诚,蔡安妮. 图像颜色矢量量化算法[J ]. 北京邮电大学学报, 2007, 30 (5> :
77 -
81.
7EqZcWLZNX
[7 ] 杨枝灵, 王开.
Visual C ++数字图像获取、处理及实践应用[M ]. 北京:人民邮电出版社, 2003:
553 - 572.
lzq7IGf02E
[8 ] 于中,徐文立,陈峰.
边缘图像中圆形轮廓地两步法检测[J ]. 计算机辅助设计与图形学学报, 2005,
17
(2> : 243 – 246
zvpgeqJ1hk
[9]Otsu N.A
threshold selection method from gray—level
histograms[J].IEEE Transactions on
Systems.Man
and Cybernetics,1979,9(1>:62—66.
NrpoJac3v1
5 6
个人资料整理 仅限学习使用
[10]赵雪松,陈淑珍综合全局二值化与边缘检测地图像分割方法【
J].计算机辅助设计与图形学学
报,2001,13(2>:118-121.
1nowfT
G4KI
6 6