季云峰,朱玲,沈晏妮
?
基于OpenCV的比賽圖片中的乒乓球球體識別
季云峰,朱玲,沈晏妮
作為中國的國球,乒乓球在中國的影響力非常廣泛。然而,目前關于乒乓球的研究一般集中在技戰術、體能、心理等體育領域中。針對乒乓球研究,基于OpenCV視覺庫中的大量函數,對乒乓球比賽圖片進行處理。設計了一種圖像識別算法,對比賽圖片中的乒乓球進行識別,將乒乓球科研研究代入計算機領域中,為后續研究提供基礎。
乒乓球;OpenCV;圖像識別
乒乓球作為中國的國球,在中國的影響力及普及范圍已十分廣泛。在中國,乒乓球運動已成為全民健身運動中最受歡迎的運動之一。伴隨著乒乓球事業的蓬勃發展,關于乒乓球方面的科研研究也隨之在各類領域中普及開來。目前,關于乒乓球領域的大部分研究集中在對乒乓球技戰術,體能訓練,心理等體育領域中。
丁松針對削球打法對乒乓球的技戰術的發展趨勢進行了研究,得出結論:削攻結合打法更加適應當今技戰術發展趨勢[1]。常鉑采用文獻資料法、實驗法等研究方法針對秀運動員的身體素質訓練提出了新的專項身體素質組合訓練方法,實驗結果證明,新的訓練方法對運動員身體素質的提高具有很大幫助[2]。施之皓等人針對運動員心理研究了了比賽重要性和比賽進程與乒乓球運動員心理狀態的關系,發現比賽重要性及比賽進程對不同的運動員有不同的影響,有助于改進運動員今后的訓練計劃[3]。而在計算機領域中,卻很少出現針對乒乓球相關問題的類似研究。
本文針對乒乓球研究,設計了一種基于OpenCV的圖像識別算法,對比賽圖片中的乒乓球進行識別,將乒乓球科研研究代入計算機領域中,為后續研究提供基礎。
OpenCV(open source computer vision library)誕生于Intel 研究中心,是近年來推出的開源、免費的計算機視覺庫,利用其所包含的函數可以很方便地實現數字圖像和視頻處理。同時利用面向對象的VC++ 6.0編程工具,用C++語言進行程序編寫,大大提高了計算機的運行速度[4]。
隨著計算機視覺市場的持續增長,OpenCV這個計算機開源視覺庫的作用日益增大。OpenCV提供的視覺處理算法非常豐富,并且它部分以C語言編寫,加上其開源的特性,處理得當,不需要添加新的外部支持也可以完整的編譯鏈接生成執行程序,所以很多人用它來做算法的移植。
目前OpenCV視覺庫主要的應用領域集中在如下幾大領域:
人臉識別
機器視覺
動作捕捉
圖像分割
人機互動
本文所做的研究也是基于OpenCV視覺庫,針對乒乓球球體識別的一個算法設計。由于OpenCV是一個開源的計算機視覺庫,所以互聯網上關于OpenCV的學習資源非常之多,集廣大圖像處理編程者的共同想法和思路,對于本文實現目標功能具有很大幫助,故本文選擇了OpenCV作為資源庫,本文的大部分功能都講基于OpenCV來實現。
本文所做實驗正是基于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為前文中處理過的二值圖像,對圖片進行輪廓檢索,是為了我們后續對乒乓球的識別更加方便準確。
至此,我們已經完成對比賽圖片的基本處理,接下來就是設計一個算法來對圖片中的乒乓球進行識別。
將圖片進行處理之后,接下來將設計算法來對乒乓球進行識別。由于乒乓球是一個具有固定形狀的物體,所以我們可以根據如下幾個參數來判斷被檢測物體是否為乒乓球,具體參數如表1所示:

表1 檢測對象特征描述
根據表1中的3個參數,我們可以設置閾值對檢測對象識別,滿足我們閾值要求的即為識別對象乒乓球。識別結果如圖5所示:

圖5 乒乓球識別結果
如圖5所示,根據我們設置閾值,成功識別出乒乓球,并用紅色方框標記出來。至此,我們已經完成在比賽圖片中的乒乓球識別工作,將乒乓球科研研究代入計算機領域中,為后續研究提供基礎。
本文針對乒乓球研究,設計了一種基于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)