APP下载

基于OpenCV的比赛图片中的乒乓球球体识别

2016-11-09季云峰朱玲沈晏妮

微型电脑应用 2016年4期
关键词:二值单通道乒乓球

季云峰,朱玲,沈晏妮



基于OpenCV的比赛图片中的乒乓球球体识别

季云峰,朱玲,沈晏妮

作为中国的国球,乒乓球在中国的影响力非常广泛。然而,目前关于乒乓球的研究一般集中在技战术、体能、心理等体育领域中。针对乒乓球研究,基于OpenCV视觉库中的大量函数,对乒乓球比赛图片进行处理。设计了一种图像识别算法,对比赛图片中的乒乓球进行识别,将乒乓球科研研究代入计算机领域中,为后续研究提供基础。

乒乓球;OpenCV;图像识别

0 引言

乒乓球作为中国的国球,在中国的影响力及普及范围已十分广泛。在中国,乒乓球运动已成为全民健身运动中最受欢迎的运动之一。伴随着乒乓球事业的蓬勃发展,关于乒乓球方面的科研研究也随之在各类领域中普及开来。目前,关于乒乓球领域的大部分研究集中在对乒乓球技战术,体能训练,心理等体育领域中。

丁松针对削球打法对乒乓球的技战术的发展趋势进行了研究,得出结论:削攻结合打法更加适应当今技战术发展趋势[1]。常铂采用文献资料法、实验法等研究方法针对秀运动员的身体素质训练提出了新的专项身体素质组合训练方法,实验结果证明,新的训练方法对运动员身体素质的提高具有很大帮助[2]。施之皓等人针对运动员心理研究了了比赛重要性和比赛进程与乒乓球运动员心理状态的关系,发现比赛重要性及比赛进程对不同的运动员有不同的影响,有助于改进运动员今后的训练计划[3]。而在计算机领域中,却很少出现针对乒乓球相关问题的类似研究。

本文针对乒乓球研究,设计了一种基于OpenCV的图像识别算法,对比赛图片中的乒乓球进行识别,将乒乓球科研研究代入计算机领域中,为后续研究提供基础。

1 OpenCV简介

OpenCV(open source computer vision library)诞生于Intel 研究中心,是近年来推出的开源、免费的计算机视觉库,利用其所包含的函数可以很方便地实现数字图像和视频处理。同时利用面向对象的VC++ 6.0编程工具,用C++语言进行程序编写,大大提高了计算机的运行速度[4]。

随着计算机视觉市场的持续增长,OpenCV这个计算机开源视觉库的作用日益增大。OpenCV提供的视觉处理算法非常丰富,并且它部分以C语言编写,加上其开源的特性,处理得当,不需要添加新的外部支持也可以完整的编译链接生成执行程序,所以很多人用它来做算法的移植。

目前OpenCV视觉库主要的应用领域集中在如下几大领域:

人脸识别

机器视觉

动作捕捉

图像分割

人机互动

本文所做的研究也是基于OpenCV视觉库,针对乒乓球球体识别的一个算法设计。由于OpenCV是一个开源的计算机视觉库,所以互联网上关于OpenCV的学习资源非常之多,集广大图像处理编程者的共同想法和思路,对于本文实现目标功能具有很大帮助,故本文选择了OpenCV作为资源库,本文的大部分功能都讲基于OpenCV来实现。

2 图像识别前的基础图片处理

本文所做实验正是基于OpenCV上的图像识别,针对目前比赛中拍摄的图片,对其进行图像处理,识别出图像中的乒乓球。主要使用函数包括cvSplit,cvThreshold,cvDilate,cvErode,cvFindContours等,主要使用功能包含二值化,设ROI区域,腐蚀和膨胀,查找像素块等,这些函数组合在一起,实现了本文对比赛图片中乒乓球进行识别的算法,以下是对这些功能函数的简介。

2.1 cvSplit

对于任意一张RGB图像,其都是三通道图像,我们处理图像需要先将其由三通道转化为单通道图像,然后再提取其中之一单通道图像进行处理和识别,在本程序中,首先我们需要先定义三个单通道图片,利用函数如下:

IplImage*dst1=cvCreateImage(cvSize(img->width,img->height), IPL_DEPTH_8U, 1);

IplImage*dst2=cvCreateImage(cvSize(img->width,img->height), IPL_DEPTH_8U, 1);

IplImage*dst3=cvCreateImage(cvSize(img->width,img->height), IPL_DEPTH_8U, 1);

其中,dst1,dst2,dst3即为我们定义的3张单通道图片,接下来我们将利用cvSplit函数来对源图像进行处理,处理函数如下:

cvSplit( biimg,dst1,dst2,dst3,NULL);

其中,biimg为源图像,是一个3通道图片,通过该函数处理之后将其转化为三张单通道图片dst1,dst2,dst3,处理效果如图1所示:

图1 单通道图片处理效果

2.2 cvThreshold

该函数是可以对单通道数组或者图片设置一个固定阈值,再通过阈值处理将原来的灰度图像转化为二值图像。其中,阈值的设置可以根据实际需要自行设定,阈值的大小设置不同也会造成不一样的处理效果,举例如下:

cvThresold(dst11,dst1,60,255,CV_THRESH_BINARY_INV);

该函数中,我们将阈值设为60,得出的二值图像处理结果如图2所示:

图2 阈值为60时二值化处理结果

若将阈值设置为150,即函数语句为

cvThresold(dst11,dst1,150,255,CV_THRESH_BINARY_INV);

在该函数中,我们得出的二值图像处理结果如图3所示:

图3 阈值为150时二值化处理结果

比较两幅图片我们可以得知,当阈值设置的值增大时,二值的效果会更加明显,即将更多的区域转化成为白色区域,保留下来的黑色区域的灰度值都是大于所设置阈值的,故我们需要根据实际实验需要来设定阈值大小。

2.3 cvDilate,cvErode

这两个函数功能依次为对图片进行膨胀,腐蚀处理,主要目的是为了去除二值图像中的微小区域,将大片区域中的细小物质给填充,以方便后续的处理和操作,有关这两个函数处理图像的语句如下:

cvDilate(dst1,dst2,NULL,3);

cvErode(dst1,dst2,NULL,6);

cvDilate(dst1,dst2,NULL,3);

其中,dst1为输入图像,dst2为输出图像,3,6代表膨胀腐蚀的次数,可根据实际需要来自行设定,我们得出的膨胀腐蚀结果如图4所示:

图4 膨胀腐蚀结果

2.4 cvFindContours

该函数的功能是从二值图像中检索轮廓,并返回检索轮廓的个数,该函数的用法语句如下所示:

CvMemStorage *storage=cvCreateMemStorage(0);

CvSeq *contours=0;

cvFindContours(dst2,storage,&contours);

其中,dst2为前文中处理过的二值图像,对图片进行轮廓检索,是为了我们后续对乒乓球的识别更加方便准确。

至此,我们已经完成对比赛图片的基本处理,接下来就是设计一个算法来对图片中的乒乓球进行识别。

3 乒乓球识别

将图片进行处理之后,接下来将设计算法来对乒乓球进行识别。由于乒乓球是一个具有固定形状的物体,所以我们可以根据如下几个参数来判断被检测物体是否为乒乓球,具体参数如表1所示:

表1 检测对象特征描述

根据表1中的3个参数,我们可以设置阈值对检测对象识别,满足我们阈值要求的即为识别对象乒乓球。识别结果如图5所示:

图5 乒乓球识别结果

如图5所示,根据我们设置阈值,成功识别出乒乓球,并用红色方框标记出来。至此,我们已经完成在比赛图片中的乒乓球识别工作,将乒乓球科研研究代入计算机领域中,为后续研究提供基础。

4 总结

本文针对乒乓球研究,设计了一种基于OpenCV的图像识别算法,通过对OpenCV视觉库里面一些相关函数的合理使用,对比赛图片中的乒乓球进行识别,将乒乓球科研研究代入计算机领域中,为后续研究提供基础。

参考文献:

[1] 丁松.影响乒乓球运动员削攻结合打法的主要因素及发展趋势[J].海体育学院学报,2015,39(2):68-72.

[2] 常铂.我国优秀乒乓球运动员多种专项身体素质组合训练方法研究[J].西安体育学院学报,2015,32(3):375-379.

[3] 施之皓,章建成等.比赛重要性及比赛进程与顶级乒乓球运动员心理状态的关系[J].体育科学,2015,32(6):41-44.

[4] 于仕琪,刘瑞祯.学习OpenCV(中文版)[M].北京:清华大学出版社,2009:45-49.

[5] Wong,PatrickK.C.Developing an intelligent assistant for table tennis umpires,in First Asia International Conference on Modelling and Simulation[J],Phuket,Thailand,2007,27-30.

[6] Wong,PatrickK.C.Dev eloping an intelligent table tennis umpiring system:identifying the ball from the scene[J],in Secend International Conference on Modelling and Simulation,2008,445-450.

[7] Viola P., Jones M.. Fast and robust classification using asymmetric adaboost and a detector cascade[J]. In Proceedings of Advances in Neural Information Processing System. 2001, 1311-1318.

Table Tennis Recognition Based on OpenCV

Ji Yunfeng, Zhu Ling, Shen Yanni

(Shanghai University of Sport, Shanghai 200438, China)

As Chinese national ball, the influence of table tennis in China is very extensive. However, the current studies of table tennis are generally focused on the sport fields of technique and tactics, physical energy, psychology and so on. In this paper, it uses computer technology to process the picture of table tennis game based on a large number of functions in OpenCV vision library. This paper designs an image recognition algorithm to identify table tennis ball in the picture, which brings the table tennis research into the computer field and provides a basis for further research.

Table Tennis; OpenCV; Image Recognition

1007-757X(2016)04-0068-03

TP391

A

(2015.11.06)

季云峰(1990-),男,上海体育学院中国乒乓球学院,博士研究生,研究方向:乒乓球,图像处理,上海,20043.8

朱 玲(1983-),上海体育学院中国乒乓球学院,硕士,副教授,研究方向:体育教学训练学,上海,20043.8

沈晏妮(1991-),上海出版印刷高等专科学院,硕士,助教,研究方向:图像处理,上海,20043.8

论文资助:晨光计划(13CG55)

猜你喜欢

二值单通道乒乓球
乒乓球悬浮术
基于联合聚类分析的单通道腹部心电信号的胎心率提取
跳舞的乒乓球
乒乓球瘪了怎么办
基于扩展卡尔曼滤波和奇异值分解算法的单通道胎儿心电提取方法
面向网络边缘应用的新一代神经网络
靠拢的乒乓球
基于二值图像数字水印算法研究
基于稀疏表示的二值图像超分辨率重建算法
基于曲率局部二值模式的深度图像手势特征提取