梁澄宇,丁尧,袁杰,,朱广浩
(1.南京大学电子科学与工程学院,南京210023;2.南京大学金陵学院,南京 210089)
2.2棋盘的图像分割
采集的棋盘图像经过几何变换后仅存在黑色棋子、白色棋子和黄色的棋盘。分割黑色棋子可以使用灰
围棋比赛图像识别算法研究
梁澄宇1,丁尧2,袁杰1,2,朱广浩1
(1.南京大学电子科学与工程学院,南京210023;2.南京大学金陵学院,南京210089)
在目前的大多数采用普通棋盘和实体棋子的围棋比赛中,结果的统计一般采用传统纸笔记录法或计算机辅助记谱,前者比较传统,依靠纸和笔记录棋谱和统计结果,而后者虽然摆脱了纸和笔,但仍需要人工录入,记谱员的工作量较大,耗费的时间较长,而且因为是人工操作,准确度的问题也难以避免,因此也没有从根本上解决问题[1-2]。
在计算机视觉技术日益普及的今天,图像处理和模式识别是一个热门的研究领域,特别是机器视觉很多国内外学者都在研究。围棋在中国有着悠久的历史和众多的爱好群体,随着科学技术的进步与发展,在棋谱的识别方面也有一些学者开展了研究,例如基于链编码理论的棋谱识别系列算法,通过扫描的纸质棋谱图像,经过二值化、倾斜检测及校正、版面分析及棋谱区域的抓取、对棋谱区域进行识别等过程识别出棋谱,主要应用于纸质棋谱的识别。本文介绍了一种基于投影的棋盘识别算法,可以应用于围棋比赛结果的判读,使用图像处理技术对采集的棋盘图像进行识别和处理,缩短判读时间,减轻人工操作负担,还可以保证结果的准确度,旨在为围棋比赛结果的识别和判读提出一个行之有效的方法。本文介绍的棋盘识别算法的处理流程包括几何变换、棋子识别、图像形态学处理、棋盘线的识别以及结果统计。
本文主要运用到的原理和方法有几何变换、图像分割、形态学检测、图像投影。
1.1几何变换
图像的几何变换是在空间域上的运算,包括两个基本操作步骤,即通过空间变换重新安排图像平面上的像素,以及利用灰度级插值为空间变换后图像中像素赋值[3-4]。
1.2图像分割
图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同的区域间表现出明显不同的特性。图像阈值化分割是一种最常用也是最简单的图像分割方法,它特别适用于目标和背景占据不同灰度级范围的图像,利用图像中不同区域在灰度值或彩色值特性上的差异,通过设定不同的特征阈值,把图像像素点分为若干类[5]。直方图阈值分割是根据图像中直方图的特征来确定分割阈值进行图像分割。
1.3形态学检测
图像数学形态学是一种新方法,在图像处理和模式识别领域有着广泛的应用。经过形态学检测,能够得到比原始图像更显著突出物体特征信息的图像[6]。首先提出所要描述的物体几何结构模式,然后根据该模式选择相应的结构元素,用选定的结构元素对图像进行击中与否变换即可。
1.4图像投影
图像在某一方向上的投影可以定义为该图像像素灰度值在该方向上累加之和。图像投影是将其特征空间由二维压缩为一维,将大量的图像信息压缩为少量的图像特征信息,从而可以有效地进行图像识别[7]。
2.1棋盘预处理
对采集的图像进行几何变换,去除图像中的无关区域,使得变换后的图像仅包含棋盘。经过空间变换和灰度级插值从采集的图像中得到只包含棋盘的图像。变换前后的结果如图1所示,其中1.a为采集得到的棋盘图像,1.b为经过预处理后得到的图像。度特征,将几何变换后的图像转换成灰度图像,在灰度直方图中选取合适的阈值即可区分黑色棋子与白色棋子和棋盘。在分割白色棋子与黄色棋盘时,因为两者在灰度值上有交叉,所以需要使用彩色特征进行分割,对比黑色、白色与黄色的RGB分量可知它们的蓝色分量相差比较大,所以可以通过彩色图像中的蓝色分量的特征进行阈值分割。黑色棋子和白色棋子阈值分割的流程图如图2和图3所示。
针对关键知识,事先做好预习微课程,以问题引导逐步呈现,整体构建知识,让学生课前观看微课程,对整体知识进行整体了解,对于不懂的知识点先做好记录,课堂上专心听教师答疑,使学生消除疑惑并获得知识内化,给学生清晰的学习逻辑主线,有效地帮助学生主动构建知识.
图1 棋盘预处理前后效果对比
2.2棋盘的图像分割
采集的棋盘图像经过几何变换后仅存在黑色棋子、白色棋子和黄色的棋盘。分割黑色棋子可以使用灰
图2 黑色棋子分割流程示意图
图3 白色棋子分割流程示意图
(1)彩色图像灰度化与蓝色分量提取
用Gray表示棋盘图像变换后的灰度值,R、G、B分别表示彩色图像的三个分量,彩色图像转变为灰度图像[8]的算法如式1所示:
依据式(1)将彩色图像转换化为灰度图像,得到如图4所示的效果,其中4.a为灰度化后效果,4.b为蓝色分量提取后效果。
图4 灰度化与蓝色分量提取效果图
(2)求灰度直方图与邻域平滑法滤波
统计每个像素在图像中出现的次数,绘制出灰度直方图曲线和蓝色分量的直方图曲线。通过直方图曲线的极值点确定分割的阈值,因为绘制出的直方图曲线上尖刺过多,直接求极值的话会得到很多结果,难以确定阈值,所以要对直方图曲线进行邻域平滑滤波[9]。
邻域平均法的基本原理是用邻域的平均值替换原始的灰度值,即用原始图像中一个像素点的灰度值和它周围邻近的多个像素点的灰度值地平均值作为新图中该像素的灰度值[10-12]。经过邻域平滑线性滤波后的曲线更加平滑,这样可以更加准确的确定直方图曲线的极值。本文使用邻域平滑方法来平滑一维信号,用滤波掩模确定的邻域内每个点的平均值代替原始信号每个点的值,绘制出新的曲线。设一维信号h(n),滤波掩模的大小为M,M取奇数,平滑线性滤波器的输出h'(n)如式2表示:
式(2)中,T是一维平滑滤波的阈值,由此可以去除由于邻域平滑滤波产生的模糊效应。经过大量测试,最终对灰度图像和蓝色分量分别选取平滑线性滤波的长度为13和15进行平滑滤波。
(5)直方图阈值分割结果
图5 棋盘图像阈值分割后效果
2.3棋子检测与结果判定
(1)形态学运算
本文中主要使用的是形态学运算中的腐蚀、膨胀和开运算操作。形态学运算的结果如图6和图7所示,有效地消除了图像上细小的噪声,并且平滑物体边界[13-15]。
图6 黑色棋子形态学运算处理结果
图7 白色棋子形态学运算处理结果
(2)图像投影
使用图像投影的方法检测棋盘中的棋盘线,首先将分割出的黑白棋子图像相加,然后对相加后的图像做一次腐蚀操作,分别在水平和垂直方向上对腐蚀后的图像做投影并进行邻域平滑滤波,观察滤波后的结果看出,两条投影曲线均有19个峰值,对应横坐标的值就是棋盘中棋盘线的位置。求出两条曲线每个峰值对应的横坐标的位置,利用求出的棋盘线的位置构造出围棋棋盘。
(3)棋子位置的识别和结果判定
定义两个二维数组分别存放黑白棋子位置,将黑色棋子的位置转换成对应的数组时,将空白棋盘位置的值设为0,将黑色棋子位置的值设为-1,类似地,在获取白色棋子位置的数组时,将白色棋子位置的值设为1。然后将两数组相加,对每一行按照围棋规则进行填补棋子,统计出矩阵中-1和1的个数即为黑色棋子与白色棋子的个数。
2.4系统测试与分析
棋子识别结果和填补结果如图8所示,与图1.b相比较,棋盘中所有棋子的位置都是一致的。
图8 棋子识别结果图
图9 填补空格后效果
为了进一步确定此算法的可行性,又测试了大量的真实棋局图像,根据多次测试的统计结果,本算法在采集的棋盘图像完整清晰的情况下,识别率高达95%以上,表明了上述棋盘识别算法可以准确地检测出棋子位置,统计出比赛结果。
针对目前围棋比赛结果的统计主要靠人工操作,耗费大量时间精力的现状,本文介绍了一种棋盘图像自动识别算法。通过对围棋棋局进行图像采集,使用几何变换去掉除棋盘之外的其他物体。分割黑色棋子时,根据灰度特征的差异,使用了灰度直方图阈值分割的方法;分割白色棋子时,根据彩色值的差异,通过蓝色分量的直方图进行阈值分割。
为了尽量去除图像的噪声,需要将分割出的黑白棋子图像分别进行形态学处理,平滑物体边界。接着将经过形态学处理后的黑白棋子图像相加并进行图像投影,然后再做一次腐蚀操作来避免棋子图像的粘连导致投影不准确。此时,经过水平和垂直方向上的投影,二维图像就转化为一维的信号,通过投影曲线确定棋盘线的位置,然后根据棋盘线的位置来识别黑白棋子的位置。
经过大量测试发现,本文介绍的棋子识别算法可以准确、快速地识别棋子和棋盘,统计出黑白棋子的个数,可以在围棋比赛中节省人工判读的时间,提高工作效率。
本文研究已经获得国家发明专利授权,“一种基于图像处理技术的围棋比赛结果分析方法”,专利号:201210150815.9,申请时间2012年5月16日,授权公告日:2016年4月27日。
[1]黄穗.基于链编码的棋谱识别算法研究[D].华东师范大学,2007.
[2]齐超男.一种中国象棋残局棋谱自动生成算法[J].黑龙江科技信息2012.31:202-202.
[3]冯珂,彭曙蓉,陈立福,杨京渝.基于MATLAB图像配准方法的相关研究[J].电子测试,2012.11:18-22.
[4]王伟.基于类推思想的车牌字符图像清晰度提升[D].西安电子科技大学,2012.
[5]钟雪君.一种改进的Otsu双阈值二值化图像分割方法[J].电子世界,2013.4:104.
[6]朱士虎.形态学高帽变换与低帽变换功能扩展及应用[J].计算机工程与应用,2011.34:190-192,218.
[7]管业鹏,顾伟康.二维场景阴影区域的自动鲁棒分割[J].电子学报,2006.4:624-627.
[8]宋玉婷.基于三维彩色直方图均衡化的彩色图像增强算法研究[D].山东财经大学,2013.
[9]刘松涛,王维,殷福亮.基于动态广义直方图均衡的红外图像增强方法[J].系统工程与电子技术,2010.7:1411-1414,1451.
[10]李兵.基于机器视觉的黑片缺陷检测图像预处理技术的研究[D].沈阳理工大学,2010.
[11]李晶.基于机器视觉的指针式仪表自动判读[D].山东科技大学,2012.
[12]王立飞.基于NAM图像处理系统的算法设计及实现[D].华中科技大学,2010.
[13]张博闻,田小林,孙延奎.基于改进的数学形态学的OCT图像快速边缘提取算法[J].计算机科学,2013.Z1:173-175.
[14]彭慧玲.基于数学形态学的边缘检测研究[D].辽宁工程技术大学,2011.
[15]赵玉环,王勤,张利伟,闫丰.数学形态学在紫外目标检测中的应用[J].计算机工程与应用,2009.29:220-222.
Image Segmentation;Image Projection;Transformation Detection
Research on Go Chess Game Image Recognition Algorithm
LIANG Cheng-yu1,DING Yao2,YUAN Jie1,2,ZHU Guang-hao1
(1.School of Electronic Science and Engineering,Nanjing University,Nanjing 210023;2.Jingling College,Nanjing University,Nanjing 210089)
1007-1423(2016)24-0039-05DOI:10.3969/j.issn.1007-1423.2016.24.010
梁澄宇(1972-),男,在读硕士研究生,研究方向为图像处理
丁尧(1981-),男,硕士,教师,研究方向为图像处理,E-mail:ammdistin@nju.edu.cn
袁杰(1975-),男,博士,教师,研究方向为图像处理
2016-05-26
2016-08-20
研究围棋比赛图像识别算法的目的主要是为了能够快速准确地判断围棋比赛结果。介绍一种高效精确的围棋棋盘识别算法,能够对采集的棋盘图像进行图像识别,自动统计黑白棋子数目。算法主要包括对图像进行几何变换、分割棋子以及棋盘线的识别。首先,使用几何变换去除原始图像中的无关物体,使图像中仅包含棋盘,其次使用直方图阈值方法分割棋子,然后使用图像投影方法识别棋盘线,根据检测到的棋盘线的位置,分别检测黑白棋子的位置,统计出比赛结果。
图像分割;图像投影;变换检测
江苏省自然科学基金(No.BK20131280)
The reason to research Go chess game image recognition algorithm is to determine the result of a Go chess game quickly and accurately. Introduces a Go chess chessboard recognition algorithm,which can recognize the captured image of the chessboard and get the number of black and white chess pieces automatically.The recognition algorithm mainly includes geometric transformation of the image,segmentation of chess pieces and recognition of chessboard lines.First of all,uses geometric transformation to remove useless part of original image so that the image only contains the chessboard part,then uses histogram threshold method to segment image.Moreover,proposes a line detection algorithm based on projection to detect lines on the chessboard.In the end,detects the position of all chess pieces according to the detected chessboard lines.