童雨輝,李萬彬,王巾銓,陳飛揚,許淑萍
(華北電力大學,北京,102206)
乒乓球這項運動在社區(qū)、高校、公園中的出現(xiàn)十分頻繁。我們想設計出一種簡便的智能計分系統(tǒng),作為輔助設備輔助裁判計分。以視頻檢測的方法跟蹤球的軌跡在其他運動中已有使用,譬如在大型網(wǎng)球場使用的“鷹眼”。同時,乒乓球智能計分在國內外有不同的研究與設計。美國佐治亞學院的王中林設計出一種木基摩擦電傳感器應用于乒乓球臺的乒乓球檢測系統(tǒng);哈爾濱工程大學的馬丞浩設計了以加速度傳感器和單片機芯片為主體的智能計分系統(tǒng)[1]。目前,OpenCV在圖像處理、模式識別、目標檢測與跟蹤方面較為突出,我們通過OpenCV處理得出目標圖像并分析出乒乓球的運動軌跡。本文所提出的計分系統(tǒng)使用OpenCV技術對初始圖像進行一系列處理得出目標圖像,將目標圖像輸入編寫的計分程序中進行計分。
我們對解幀后得到的一組圖像進行讀取,把每一幀圖像進行分析和處理,進行灰度化處理和去噪處理將視頻圖像進行簡化和降低模糊,在經過幀間拆分法以及二值化變換之后,我們就可以將圖像中的輪廓提取并除去背景的干擾,最后在腐蝕膨脹等形態(tài)學處理后,我們就得到了初階段的目標圖像。
對運動目標的檢測和乒乓球臺的檢測即感興趣區(qū)的提取。在計分中,乒乓球臺區(qū)域就是我們的感興趣區(qū)。我們通過矩陣運算來定義此區(qū)域,然后利用函數(shù)將區(qū)域外的非感興趣區(qū)設定為像素為0,只保留感興趣區(qū)的像素值。這樣就得出了局限于乒乓球臺區(qū)域的圖像。
在上述處理完成后的圖像上建系,通過幀間拆分法分析出目標輪廓,再基于乒乓球圓形的形狀,以形狀閾值分割準確提取出圓形的乒乓球區(qū)域。提取出乒乓球區(qū)域后,再通過矩陣算法計算出圓形區(qū)域的質心并輸出坐標。
在得到質心坐標的變化曲線后,就可以設置邏輯算法,分析出乒乓球的碰案、觸網(wǎng)等特征動作,再結合發(fā)球方、接球方判斷得分方。
我們利用操作符:capture>>frame對視頻進行讀取,將視頻按幀展開進行讀取。
攝像機傳輸?shù)囊曨l圖像是彩色圖像,每一個像素有R(紅)、G(綠)、B(藍)三個通道,像素值介于0-255之間,而灰度圖像只會占用一個通道,極大地減少了計算機的計算量,提高系統(tǒng)的運行速度,故將視頻圖像灰度化處理十分必要。
我們用下面的OpenCV函數(shù)進行灰度化處理:
void cvtColor(InputArray src,OutputArray dst,int code,int dstCn=0)
其中InputArray src為輸入圖像,OutputArray dst為輸出圖像,int code是顏色轉換空間標志符,int dstCn=0為目標圖像的通道數(shù),如果該參數(shù)為0,通道數(shù)就會取原圖像的通道數(shù)[2]?;叶然幚頃r,Code參數(shù)為CV_RGB2GRAY。
由于中值濾波更適用于處理椒鹽噪聲和脈沖噪聲,我們選取中值濾波去噪。
我們利用如下的OpenCV函數(shù):
其中:src——輸入圖像;
dst——輸出圖像, 與src同類型;
ksize——內核大?。ㄓ捎谖覀冞x取正方形窗口,只用到一個值),為奇數(shù)[3]。
幀差法是對兩幀圖像運算,得到圖像相應位置像素值差的絕對值,判定它是否大于某一閾值,分析圖像序列中目標物體的運動特性。其數(shù)學公式描述如下:
其中,In指視頻序列中第n幀圖像在像素位置的像素值,In-k指同一視頻序列中第n-k 幀圖像的像素值,Dn指兩幀圖像的像素差值,k即幀間隔,F(xiàn)n指統(tǒng)計前、背景區(qū)域的二值圖,1為前景,0是背景;T指系統(tǒng)設定的閾值。我們使用改進于相鄰幀差法的三幀差法。
圖像的二值化可以簡化圖像,使圖像的輪廓更清晰。
按圖像的灰度值,可以把圖像分成背景和前景。方差是判斷灰度分布均勻性的一種度量,類間方差越大說明形成圖像的背景與前景的差別越大,它們之間的錯分都會導致它們之間的差別變小。因此,使類間方差最大的分割方法同時就是使前景和背景錯分最小的方法。
在OpenCV中,我們使用如下函數(shù):
Double threshold(InputArray src,OutputArray dst,double maxval,int type)
其中src為輸入組(單通道,8或32位浮點類型的Mat),dst用于存放輸出結果,且和第一個參數(shù)中的Mat變量尺寸類型一致,thresh為二值化的閾值,maxval為type取THRESH_BINARY或THRESH_BINARY_INV時的最大值,type為閾值類型。
二值圖像的形態(tài)學操作有:腐蝕、膨脹、開運算、閉運算[6]。
腐蝕圖像可以對邊界進行清除,使圖像的邊界向內部收縮,從而達到縮小目標圖像的目的,主要用于把邊界上無用的點消除。公式如下:
其中,用B代表卷積核,A代表原圖像
膨脹與腐蝕的目的相反,膨脹就是合并邊界點,使目標邊界向邊界點外擴張。主要用來填充目標區(qū)域中的可能出現(xiàn)的漏點,也可以在一定程度上消除目標區(qū)域中的噪聲。公式如下:
開、閉運算是腐蝕和膨脹的組合操作,區(qū)別就在于膨脹與腐蝕的操作順序。開運算是先腐蝕圖像,然后再對圖像進行膨脹操作,一般用于清除小粒的噪音,消除圖像的離散點。閉運算則與開運算相反,先膨脹再腐蝕,閉運算可以填充圖像里的微小空洞,連接位置靠近的多個目標。開、閉運算將腐蝕和膨脹組合使用,在對目標區(qū)域進行處理的同時又不明顯改變圖像區(qū)域的面積。
在拍攝時,由于拍攝視角廣,會捕捉到其他背景區(qū)域,而這些背景會干擾乒乓球捕捉。為了降低背景干擾,我們設置了一個對應乒乓球臺區(qū)域的感興趣區(qū)。
在拍攝角度看,球桌形狀為梯形,我們利用矩陣定義該區(qū)域,把對圖像進行的操作轉換成對矩陣的操作。矩陣運算時一般習慣上依次用高度、寬度的順序對應矩陣中的行與列。那么,我們可以利用圖像矩陣運算來定義這個梯形區(qū)域。我們通過img.shape()函數(shù)獲取視頻序列的寬度和高度,則左下角的點可表示為[width*a,height*b],其中a,b小于1。據(jù)此表示出四角的坐標。接著,生成掩膜圖像。掩膜可以對原圖像進行遮擋過濾[5],我們對非感興趣區(qū)域進行遮擋,將感興趣區(qū)設置為白色,將不相關區(qū)域設定為黑色。最終只會保留感興趣區(qū)的像素值,而非感興趣區(qū)像素值為0,被黑色遮掩。
我們采用兩臺攝像機,在水平側邊以及球臺上方兩個位置分別放置。側邊攝像機可以捕捉到乒乓球在空中的曲線,頂部則可以捕捉到乒乓球的落點,結合兩部攝像設備就可以較為準確地恢復出乒乓球的三維軌跡。
側視角度:以球網(wǎng)與臺面交點為中心點建立z坐標系。俯視角度:以球桌中心為原點建立xy坐標系。
設圖形的半徑為r,則其的周長為C=2πr,面積為S=πr2,那其形狀就可以描述為一個相對不發(fā)生變化的值:
4.4.1 質心定位
本文利用輪廓的矩計算乒乓球區(qū)域質心。計算方式如下:
一階矩為:
質心的橫縱坐標公式為:
由于像素點的灰度值都為1,則M00為輪廓點的個數(shù),M10為所有點的行坐標數(shù)值和,M01為所有點列坐標的數(shù)值和。
設球從左向右飛行,桌面長為a,寬為b,設圓心坐標為(x0,y0,z0),球半徑為 r,球網(wǎng)高h。
當x0≥ a/2或y0≤-b/2或y0≥b/2且z0>r且5秒內圖像中無乒乓球出現(xiàn)時,球出界。
當 -a/2<x0<a/2 且 -b/2<y0<b/2 且 z0=r 時,球碰案。
當 z0<h 且下一幀 x0<0 時,球打網(wǎng)。
假設球碰案的次數(shù)為n,假設左方得分為L,右方得分為R,球心坐標為(x,y,z)。
當比賽開始時,首先進行發(fā)球方的判斷:當乒乓球首次出現(xiàn)在畫面中時x<0為左方發(fā),x>0為右方發(fā);然后進行擦網(wǎng)判斷:(當x在[-r,r]區(qū)間內時,z在[h-r,h+r]區(qū)間內時,即為擦網(wǎng))。
重發(fā)判定:當已判定為擦網(wǎng)時,若球下一次碰案所對應的x2坐標與前一次碰案所對應的x1坐標符號相反,則判斷為“發(fā)球擦網(wǎng)”,發(fā)球方重新發(fā)球。(當n>2后不再判斷是否重發(fā))。
得分判斷:現(xiàn)在假設是左方發(fā)球、當右方發(fā)球時結果互換。當已判斷為左方發(fā)球后,如果在5秒內n的值依舊為0,即發(fā)球未上案,右方直接得分;當某一次碰案所對應的xn與上一次碰案所對應的xn-1的正負號相同時,判斷n的奇偶性,如果n是奇數(shù)即為右方擊球失誤,左方得分、如果n是偶數(shù)那么表明左方擊球失誤,右方得分;在n≥1時判斷,若在5秒內n的值沒有變化,則為某一方擊球失誤,如果n是奇數(shù)則為左方失誤,右方得分,如果n是偶數(shù)則為右方失誤,左方得分[7]。
終局判斷:若L=11,且0≤R≤10,則為左方贏下本局;若R=11,且0≤L≤10,則為右方贏下本局;若L=R=10時,只要在此后|L-R|=2,則本局結束,若L>R左方贏、若R>L右方贏。
本文設計的乒乓球智能計分系統(tǒng)主要依靠圖像處理得出乒乓球軌跡,并通過設定的算法將軌跡化為數(shù)字信號,在對數(shù)字信號的整合分析后就可以判定出乒乓球的特征動作,最后結合發(fā)球與接球判斷得分。在整個系統(tǒng)上來看,乒乓球軌跡的得出及其數(shù)字化是計分的核心工作。
攝像的角度、拍攝場所的光線、拍攝設備的清晰度等影響成像的因素都會對本文的計分系統(tǒng)產生干擾。在視頻獲取時,均勻的光線、攝像設備的高速捕捉能力等都會利于乒乓球軌跡的提取進而提高分值判斷的準確度。在實際應用中,可以把計分系統(tǒng)當做裁判的輔助工具來使用。