基于視頻的體育運(yùn)動(dòng)分析系統(tǒng)的研究與實(shí)現(xiàn)
近年來(lái),利用運(yùn)動(dòng)員的訓(xùn)練、比賽視頻圖像作為體育訓(xùn)練的參考,進(jìn)行體育運(yùn)動(dòng)分析是國(guó)內(nèi)外普遍采用的一種行之有效方法。體育運(yùn)動(dòng)分析運(yùn)用了當(dāng)今流行的圖像處理、人體仿真學(xué)、計(jì)算機(jī)視覺(jué)等多領(lǐng)域的研究熱點(diǎn),以運(yùn)動(dòng)員為研究對(duì)象,對(duì)其進(jìn)行定性以及定量分析,達(dá)到科學(xué)輔助訓(xùn)練的目的。
文中擬以體育運(yùn)動(dòng)視頻圖像為主要研究對(duì)象,以視頻處理技術(shù)為主要研究手段,設(shè)計(jì)并實(shí)現(xiàn)一種集合視頻控制、全景圖合成、靜態(tài)背景抑制、運(yùn)動(dòng)目標(biāo)跟蹤及量化等功能為一體的體育運(yùn)動(dòng)分析系統(tǒng)。
1 系統(tǒng)設(shè)計(jì)需求分析
傳統(tǒng)的體育運(yùn)動(dòng)分析主要是基于經(jīng)驗(yàn)和人眼的觀察和分析方法,顯然此類(lèi)方法具有明顯的局限性和不足。
體育運(yùn)動(dòng)分析的主要目的就是通過(guò)分析運(yùn)動(dòng)員訓(xùn)練和比賽的視頻圖像,利用視頻圖像在時(shí)間和空間上的相關(guān)性,得到各種人體運(yùn)動(dòng)學(xué)參數(shù)以及運(yùn)動(dòng)員和教練員感興趣的各類(lèi)信息,實(shí)現(xiàn)科學(xué)指導(dǎo)訓(xùn)練。
文中借助Visual C++.net 2003開(kāi)發(fā)平臺(tái),研究和設(shè)計(jì)了—個(gè)基于視頻的體育運(yùn)動(dòng)分析系統(tǒng),實(shí)現(xiàn)了對(duì)運(yùn)動(dòng)視頻的定性和定量分析,具有很強(qiáng)的實(shí)用性。
2 系統(tǒng)功能設(shè)計(jì)及其算法實(shí)現(xiàn)
2.1 系統(tǒng)總體功能設(shè)計(jì)
文中主要針對(duì)單目視頻進(jìn)行人體運(yùn)動(dòng)分析,利用Directshow技術(shù)對(duì)運(yùn)動(dòng)視頻進(jìn)行控制;利用基于馬賽克的圖像拼接技術(shù),提取視頻中的背景信息,對(duì)視頻圖像進(jìn)行時(shí)域分割,提取視頻中的運(yùn)動(dòng)目標(biāo),最后合成全景圖像;利用幀間差分法濾除靜態(tài)背景,實(shí)現(xiàn)背景抑制;結(jié)合卡爾曼濾波和色塊匹配技術(shù),對(duì)運(yùn)動(dòng)關(guān)鍵部位進(jìn)行自動(dòng)跟蹤,并獲取人體運(yùn)動(dòng)學(xué)參數(shù)建立基于視頻的體育運(yùn)動(dòng)分析系統(tǒng)。
系統(tǒng)主要功能框架,如圖1所示。整個(gè)系統(tǒng)由4部分組成。
2.2 視頻控制
DirectShow使用一種叫Filter Graph的模型來(lái)管理整個(gè)數(shù)據(jù)流的處理過(guò)程;參與數(shù)據(jù)處理的各個(gè)功能模塊叫做。Filter;各個(gè)Fiher在Filter Graph中按一定的順序連接成一條“流水線”協(xié)同工作。本系統(tǒng)采用先進(jìn)的DirectShow視頻播放技術(shù),根據(jù)教練和運(yùn)動(dòng)員進(jìn)行動(dòng)作分析的需要,增加各種速率視頻播放、視頻圖像剪輯、逐幀圖像顯示等功能。
2.3 全景圖合成
相鄰幀間兩幅圖像的關(guān)系便歸結(jié)為初等坐標(biāo)變換,即平移、旋轉(zhuǎn)、仿射、雙線性和透視變換的組合。實(shí)際上當(dāng)攝像機(jī)的移動(dòng)的幅度不是很大并且離景物很遠(yuǎn)的情況下,對(duì)視頻圖像進(jìn)行拼接時(shí)就可以不考慮圖像間的變形失真,此時(shí)兩圖像間的變換矩陣M由下式確定
對(duì)于8個(gè)參數(shù)的確定需要準(zhǔn)確的確定4個(gè)匹配點(diǎn),然后通過(guò)式(2)就可以確定變換矩陣M,M的確定,如圖2所示。
4組匹配點(diǎn)就可以完全確定含有8個(gè)未知數(shù)的8個(gè)方程。這些方程全是線性方程組,可以通過(guò)Gauss全選主元消去法進(jìn)行求解。
假設(shè)已經(jīng)通過(guò)相關(guān)匹配到3組點(diǎn)(A,A'),(B,B'),(C,C'),由于幀間變化的漸變性,A點(diǎn)的位移幅度應(yīng)該和B點(diǎn)及C點(diǎn)的位移幅度相近,否則就說(shuō)明有誤匹配出現(xiàn)。取如下定義
rang(A)=| A-A'| (3)
若出現(xiàn)|rang(A)-rang(B)|>ε(此處ε為合適的閾值)說(shuō)明出現(xiàn)了誤匹配,結(jié)合| rang(A)-rang(C)|就可以確定出哪個(gè)點(diǎn)出現(xiàn)了誤匹配,然后重新選取模板進(jìn)行匹配;重復(fù)執(zhí)行以上過(guò)程直到A,B,C都滿(mǎn)足條件。
整個(gè)誤匹配的消除過(guò)程中采用的舉手表決的方式,對(duì)于4組點(diǎn)誤匹配的消除,選取模板的時(shí)至少選5組,只有這樣才不會(huì)出現(xiàn)類(lèi)似于正確對(duì)錯(cuò)誤為2:2的情況。
由于在重疊區(qū)域直接取兩幅圖像中其中的一幅進(jìn)行圖像合成,很容易在重疊區(qū)域的邊界處形成明顯的拼縫,因此,需要采用圖像融合技術(shù)合成全景圖。
以左右拼接的兩幅圖像I1(i,j)和I2(i,j)為例,則重疊區(qū)域圖像的像素值I(x,y)可表示為
I(i,j)=d(i)I1(i,j)+(1-d(i))I2(i,j)(4)
其中,d(i)為融合系數(shù),它與離邊界的距離成正比關(guān)系,上述計(jì)算是按掃描線逐條進(jìn)行的,因此該方法適用于任意形狀的兩幅圖像的融合。
圖3為全景圖合成結(jié)果。圖3(a)~圖3(d)為要合成的視頻圖像中提取的4幀,圖3(e)為合成的背景全景圖,圖3(f)為添加了運(yùn)動(dòng)目標(biāo)后的全景圖。
2.4 靜態(tài)背景抑制
靜態(tài)背景抑制功能是對(duì)定點(diǎn)拍攝的運(yùn)動(dòng)圖像進(jìn)行圖像融合,得到純凈背景下的整個(gè)運(yùn)動(dòng)過(guò)程圖像,對(duì)于削弱背景及拍攝條件對(duì)成象質(zhì)量以及成象效果的影響有著很明顯的效果。
對(duì)于靜態(tài)背景抑制,本系統(tǒng)在相鄰幀差分方法的基礎(chǔ)上提出了利用多幀圖像差分進(jìn)行目標(biāo)分割的方法,對(duì)于做差得到的對(duì)應(yīng)的殘差圖進(jìn)行二值化操作后進(jìn)行相與運(yùn)算,這樣可以很好的提取運(yùn)動(dòng)區(qū)域,消除噪聲的影響。其算法流程圖,如圖4所示。
多幀圖像的差分運(yùn)算就是取當(dāng)前幀和它前面的Ir+1~I(xiàn)n以及它后面的Ir-1~I(xiàn)1分別做差,其公式如下
di= |I(x,y,r)-I(x,y,i)| i=1, 2,…,r-1,r+1,…,n (5)
對(duì)于差分得到的圖像,對(duì)它們進(jìn)行閾值分割,將差分圖像轉(zhuǎn)換為二值圖像。
其中,T為閾值,閾值的設(shè)定采用經(jīng)驗(yàn)法。之所以采用這種方法是因?yàn)榇朔椒ㄍ渌椒ㄏ啾?,無(wú)需較多計(jì)算量,滿(mǎn)足實(shí)時(shí)性的要求。
對(duì)二值化的殘差圖進(jìn)行與操作就可得到運(yùn)動(dòng)目標(biāo)Ir的二值圖像。
Ir=ID1&&ID2&&…&&IDn (7)
由于獲取視頻序列場(chǎng)景中各種因素的影響,與操作得到的運(yùn)動(dòng)區(qū)域中不可避免地會(huì)留下大量的噪聲點(diǎn)。另外,圖像中對(duì)應(yīng)于運(yùn)動(dòng)目標(biāo)的區(qū)域也會(huì)出現(xiàn)不同程度的碎化。二值形態(tài)學(xué)中閉運(yùn)算,即先膨脹后腐蝕運(yùn)算,在鄰域合并和噪聲去除方面效果明顯。
對(duì)于經(jīng)過(guò)上述一系列操作得到的運(yùn)動(dòng)區(qū)域圖像,采用將運(yùn)動(dòng)區(qū)域圖像與原圖像中的像素點(diǎn)逐個(gè)比較,對(duì)于二值化運(yùn)動(dòng)區(qū)域圖像中為0的點(diǎn),原圖像對(duì)應(yīng)點(diǎn)的灰度值標(biāo)定為0;對(duì)于二值化運(yùn)動(dòng)區(qū)域圖像中為1的點(diǎn),原圖像對(duì)應(yīng)點(diǎn)的灰度值保持不變。這樣,運(yùn)動(dòng)目標(biāo)就被提取出來(lái),結(jié)果如圖5所示。
2.5 運(yùn)動(dòng)目標(biāo)跟蹤及量化
用Kalman濾波和色塊匹配可以搜索出視頻文件中的各個(gè)關(guān)鍵點(diǎn)在每一幀的具體位置,從而可以算出每一幀圖像的各個(gè)關(guān)鍵點(diǎn)的速度(和像素對(duì)應(yīng)),然后將這個(gè)速度對(duì)應(yīng)到具體的人上就可以求出運(yùn)動(dòng)員各個(gè)部位的運(yùn)動(dòng)參數(shù):位置速度,加速度。非常方便對(duì)運(yùn)動(dòng)員訓(xùn)練的分析。
Kalman濾波是以最小均方誤差為準(zhǔn)則的最佳線性估計(jì)和濾波。Kalman濾波只需要根據(jù)前一個(gè)估計(jì)值和最近一個(gè)觀測(cè)值來(lái)估計(jì)信號(hào)的當(dāng)前值。它是以狀態(tài)方程和遞推的方法進(jìn)行估計(jì)的,而且所得到的解是以估計(jì)值的形式給出的。文中將Kalman濾波應(yīng)用與預(yù)測(cè)目標(biāo)在下一幀中的參數(shù),對(duì)于體育運(yùn)動(dòng)視頻圖像,近似認(rèn)為目標(biāo)做勻加速直線運(yùn)動(dòng),由牛頓力學(xué)公式可得
其中,T為兩幀時(shí)間間隔,根據(jù)Kalman濾波方程
因此在系統(tǒng)中選取
由此,可以通過(guò)狀態(tài)方程和量測(cè)方程得到運(yùn)動(dòng)目標(biāo)下一幀的預(yù)測(cè)信息,并根據(jù)預(yù)測(cè)信息進(jìn)行匹配,實(shí)現(xiàn)跟蹤。文中采用了一種基于子像素的相似度算法。設(shè)源目標(biāo)的矩形左上角坐標(biāo)為X0,Y0。矩形的長(zhǎng)為m,寬為n,X1,Y1點(diǎn)是Kalman濾波預(yù)測(cè)的下一幀目標(biāo)左上角的坐標(biāo)。
那么要匹配的目標(biāo)的左上角的坐標(biāo),在以預(yù)測(cè)點(diǎn)X1,Y1為中心長(zhǎng)為dy寬為dx的矩形內(nèi),其中dx,dy可由用戶(hù)確定。
以X1,Y1點(diǎn)為中心長(zhǎng)為dy,寬為dx的矩形中的任何一點(diǎn)為匹配目標(biāo)矩形的左上角,將該矩形內(nèi)的顏色信息保存下來(lái)和源目標(biāo)對(duì)應(yīng)點(diǎn)的RGB分別作差再取絕對(duì)值,并將所有的值加起來(lái),記為diff,最后再對(duì)diff取倒數(shù),記為S。將S記為兩個(gè)圖像之間的相似度,S越大相似度越高。即
對(duì)于沒(méi)有遮擋的平動(dòng)目標(biāo)這樣的方法完全可以解決問(wèn)題。但是當(dāng)運(yùn)動(dòng)過(guò)程中又一部分被遮擋了匹配出來(lái)的位置將會(huì)很不準(zhǔn)確。這是一個(gè)非常實(shí)際的問(wèn)題,因?yàn)槿梭w運(yùn)動(dòng)的復(fù)雜性在運(yùn)動(dòng)時(shí)如果假設(shè)沒(méi)有遮擋,實(shí)際就沒(méi)有解決問(wèn)題,適應(yīng)性太差。應(yīng)該考慮一種可以解決遮擋的辦法。
文中是將目標(biāo)分為幾個(gè)子塊,對(duì)每個(gè)子塊進(jìn)行匹配,如果有一個(gè)子塊匹配的相似度較高就認(rèn)為找到目標(biāo),停止匹配;如果相似度較低,則繼續(xù)下一子塊的匹配,直到找到相似度較高時(shí)停止。如果所有子塊的相似度都很低,也就是說(shuō)該目標(biāo)全被遮擋。這時(shí)將上一幀的源目標(biāo)繼續(xù)保存為原目標(biāo)而不需要更新,用這個(gè)原目標(biāo)繼續(xù)和下一幀的圖像進(jìn)行比較。這個(gè)方法可以有效的處理遮擋。
這樣就實(shí)現(xiàn)了人體關(guān)鍵部位跟蹤的功能,由于人體運(yùn)動(dòng)的復(fù)雜性和不可預(yù)測(cè)性,在跟蹤過(guò)程中還必須加入適當(dāng)?shù)娜斯じ深A(yù),跟蹤結(jié)果更加準(zhǔn)確并能提取出所需要的位移、速度等各類(lèi)參數(shù)。跟蹤結(jié)果,如圖6所示,圖6(a)為用戶(hù)設(shè)定的3個(gè)跟蹤點(diǎn),圖6(b)可以看到point1跟蹤出現(xiàn)了誤差,此次時(shí)需要人工校正圖6(c),校正后繼續(xù)跟蹤圖6(d),圖6(e)為跟蹤過(guò)程中,3個(gè)跟蹤點(diǎn)構(gòu)成的角度變化曲線。
2.6 實(shí)現(xiàn)技術(shù)與平臺(tái)
本系統(tǒng)實(shí)在Windows XP操作系統(tǒng)下,利用Visual C++.net 2003開(kāi)發(fā)實(shí)現(xiàn),已經(jīng)進(jìn)行了大量測(cè)試,其運(yùn)行穩(wěn)定、可靠性強(qiáng)、準(zhǔn)確率高。由于VC++具有較強(qiáng)的靈活性,所以該系統(tǒng)具有一定的可擴(kuò)充性。本系統(tǒng)對(duì)硬件環(huán)境沒(méi)有特殊要求,IntelPentium III以上的CPU都可以滿(mǎn)足運(yùn)動(dòng)需要。
3 結(jié)束語(yǔ)
文中以單目視頻中的人體運(yùn)動(dòng)為研究對(duì)象,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于視頻的體育運(yùn)動(dòng)分析系統(tǒng),為體育運(yùn)動(dòng)分析領(lǐng)域提供了一套完整的定性和定量分析系統(tǒng)。實(shí)驗(yàn)過(guò)程是:首先獲取攝象機(jī)拍攝的體育運(yùn)動(dòng)視頻圖像,然后對(duì)其進(jìn)行檢測(cè)、分割和跟蹤,獲得人體或者某一部位的運(yùn)動(dòng)信息以及人體運(yùn)動(dòng)學(xué)參數(shù),并得到直觀的數(shù)據(jù)和曲線,達(dá)到進(jìn)一步分析人體運(yùn)動(dòng)的目的。系統(tǒng)各功能模塊的算法具有一定的魯棒性,得到的結(jié)果令人滿(mǎn)意。