專利名稱:一種基于計(jì)算機(jī)的小球運(yùn)動處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,更具體地說,涉及一種基于計(jì)算機(jī)的小球運(yùn)動處理方法及系統(tǒng)。
背景技術(shù):
飛速發(fā)展的計(jì)算機(jī)技術(shù)正給人們帶來越來越多的便利,利用計(jì)算機(jī)進(jìn)行小球運(yùn)動的健身項(xiàng)目就是其中一個方面的體現(xiàn)。目前在計(jì)算機(jī)上進(jìn)行小球運(yùn)動,比如乒乓球、或網(wǎng)球、羽毛球等運(yùn)動或游戲的實(shí)現(xiàn)方式主要有以下兩種用計(jì)算機(jī)鼠標(biāo)和鍵盤來操作。其中鍵盤用來處理打什么類型的球,一個按鍵對應(yīng)一個打球類型;鼠標(biāo)用來處理打球的力度,和方向、處理力度時,顯示器上會有一個表示力度的條狀圖形,當(dāng)鼠標(biāo)按鍵被按下時,此次打球的力度就選擇為條狀圖形所處位置標(biāo)識的力度;鼠標(biāo)左右移動的方向代表著打球的方向。使用帶有重力傳感器、陀螺儀、及少數(shù)按鍵的手柄。重力傳感器用于判斷打球時揮拍運(yùn)動的加速度,陀螺儀用于判斷運(yùn)動的方向,少數(shù)按鍵用于表示打球是什么類型。手柄的運(yùn)動加速度、方向、按鍵信息通過藍(lán)牙功能傳入到終端計(jì)算機(jī),供小球運(yùn)動項(xiàng)目軟件使用?,F(xiàn)有技術(shù)存在著以下缺陷使用計(jì)算機(jī)鍵盤、鼠標(biāo)來進(jìn)行小球運(yùn)動,比如乒乓球、或網(wǎng)球、羽毛球等,其本身只是使用了人的手,且是用來按鼠標(biāo)和鍵盤,和真實(shí)的運(yùn)動相差甚遠(yuǎn),如果按這種方式來實(shí)現(xiàn)運(yùn)動項(xiàng)目,那么所有的運(yùn)動項(xiàng)目毫無差異,所以,這種實(shí)現(xiàn)方式,只能算是一種小球游戲的實(shí)現(xiàn)方式。使用重力傳感器、陀螺儀、及少數(shù)按鍵實(shí)現(xiàn)的小球運(yùn)動中,雖然得到了打球時揮動球拍的加速度,運(yùn)動方向,和打球的類型,但是這里面有很多的缺陷,其中兩個最大的缺陷是,一、打球的類型是由按鍵給出的,和真實(shí)中人揮拍動作毫無關(guān)系;二、沒有讓用戶身臨其境的3D場景,未能準(zhǔn)確顯示用戶的位置,用戶的動作也未能很好體現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的不能真實(shí)準(zhǔn)確地顯示用戶位置和揮拍動作、不能判斷球拍是否打中小球、不能判斷揮拍類型的缺陷,提供一種基于計(jì)算機(jī)的小球運(yùn)動處理方法及系統(tǒng)。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是提供一種基于計(jì)算機(jī)的小球運(yùn)動處理方法,通過視頻對球拍跟蹤點(diǎn)進(jìn)行識別,確定球拍位置,包括以下步驟1)采集球拍的位置數(shù)據(jù),并計(jì)算出所述球拍的速度數(shù)據(jù)、力度數(shù)據(jù)和用戶的位置數(shù)據(jù);2)計(jì)算擊球前小球的位置數(shù)據(jù);3)根據(jù)所述球拍的位置數(shù)據(jù)和擊球前所述小球的位置數(shù)據(jù)判斷所述球拍是否打中所述小球;
4)根據(jù)所述球拍的速度數(shù)據(jù)和/或位置數(shù)據(jù)判斷所述球拍的揮拍類型,并根據(jù)所述球拍的力度數(shù)據(jù)計(jì)算擊球后所述小球的速度數(shù)據(jù);5)計(jì)算擊球后所述小球的位置數(shù)據(jù);6)判斷所述小球是否落入對手半球桌內(nèi)。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法中,所述步驟1)進(jìn)一步包括11)在所述球拍上設(shè)置跟蹤點(diǎn),不斷采集攝像頭坐標(biāo)系中所述球拍的位置數(shù)據(jù);12)將所述球拍的位置數(shù)據(jù)從所述攝像頭坐標(biāo)系映射到虛擬坐標(biāo)系,并實(shí)時顯示所述虛擬坐標(biāo)系中所述球拍的位置;13)根據(jù)所述球拍的位置數(shù)據(jù)計(jì)算所述用戶的位置數(shù)據(jù),并實(shí)時顯示所述虛擬坐標(biāo)系中所述用戶的位置;14)根據(jù)所述球拍的位置數(shù)據(jù)計(jì)算所述球拍的速度數(shù)據(jù)和力度數(shù)據(jù)。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法中,所述步驟2、中,根據(jù)所述對手上次擊球后所述小球的速度數(shù)據(jù)計(jì)算擊球前所述小球的位置數(shù)據(jù),并實(shí)時顯示所述虛擬坐標(biāo)系中擊球前所述小球的位置。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法中,所述步驟幻中,通過計(jì)算判斷所述小球的位置點(diǎn)到所述球拍所在平面的距離是否大于所述小球的半徑,大于則說明所述球拍和小球沒有相交,否則繼續(xù)計(jì)算判斷所述小球的位置點(diǎn)到所述球拍的位置點(diǎn)的距離是否大于所述球拍的半徑,大于則說明所述球拍和小球沒有相交,否則說明所述球拍和小球相交,如果相交則判斷所述球拍打中所述小球;如果不相交則判斷所述球拍沒有打中所述小球,本次擊球失敗。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法中,所述步驟4)進(jìn)一步包括41)根據(jù)所述球拍的速度數(shù)據(jù)判斷所述球拍的揮拍開始與結(jié)束;42)根據(jù)所述球拍的速度數(shù)據(jù)和/或位置數(shù)據(jù)判斷所述球拍的揮拍類型,并且根據(jù)所述球拍的揮拍類型和力度數(shù)據(jù)計(jì)算擊球后所述小球的速度數(shù)據(jù);43)根據(jù)所述球拍的揮拍類型確定并顯示所述用戶的揮拍動作。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法中,所述球拍的揮拍類型包括平推球、向上挑球、扣殺球、削球,其中,所述平推球的特點(diǎn)是,所述球拍在左右和上下的位移較小,而向前的位移較大;所述向上挑球的特點(diǎn)是,所述球拍在左右的速度非常小,幾乎為零,而在向上有較明顯的速度;所述扣殺球的特點(diǎn)是,所述球拍在向下、向前和左右的速度都比較大;所述削球的特點(diǎn)是,所述球拍在向下、向前和左右的速度都不為零,但是所述速度比所述扣殺球要小。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法中,所述步驟幻中,根據(jù)擊球后所述小球的速度數(shù)據(jù)計(jì)算擊球后所述小球的位置數(shù)據(jù),并實(shí)時顯示所述虛擬坐標(biāo)系中擊球后所述小球的位置。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法中,所述步驟6)中,通過判斷所述小球是否過網(wǎng)以及所述小球是否出界,來判斷所述小球是否落入所述對手半球桌內(nèi),如果所述小球過網(wǎng)并且沒有出界則判斷所述小球落入所述對手半球桌內(nèi),本次擊球成功;否則判斷所述小球沒有落入所述對手半球桌內(nèi),本次擊球失敗。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法中,所述對手為虛擬人或其他用戶,其中,所述虛擬人的運(yùn)動由人工智能控制,所述其他用戶運(yùn)動的處理方法與所述用戶運(yùn)動的處理方法對應(yīng)相似。一種基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng),包括識別模塊、數(shù)據(jù)處理模塊和顯示模塊, 其中,所述識別模塊用于不斷采集所述球拍的位置信息;所述數(shù)據(jù)處理模塊與所述識別模塊相連,用于獲取球拍的位置數(shù)據(jù)、速度數(shù)據(jù)、力度數(shù)據(jù)和用戶的位置數(shù)據(jù),計(jì)算擊球前小球的位置數(shù)據(jù),判斷所述球拍是否打中所述小球, 判斷所述球拍的揮拍類型并計(jì)算擊球后所述小球的速度數(shù)據(jù),計(jì)算擊球后所述小球的位置數(shù)據(jù),判斷所述小球落點(diǎn)是否對手半球桌內(nèi);所述顯示模塊與所述數(shù)據(jù)處理模塊相連,用于實(shí)時顯示所述虛擬坐標(biāo)系中所述小球的位置、所述用戶球拍的位置、所述用戶的位置和揮拍動作,以及所述對手球拍的位置、 所述對手的位置和揮拍動作。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng)中,所述系統(tǒng)還包括人工智能模塊,與顯示模塊相連接,用于控制所述虛擬人的運(yùn)動。在本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng)中,所述系統(tǒng)還包括與所述識別模塊和數(shù)據(jù)處理模塊的功能以及連接方式對應(yīng)相似的另一套識別模塊和數(shù)據(jù)處理模塊。實(shí)施本發(fā)明所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法及系統(tǒng),具有以下有益效果能更準(zhǔn)確地反映出用戶的位置和動作,用戶在揮拍或持拍的各個時刻,球拍的位置都會如實(shí)的反應(yīng)在顯示器上。能準(zhǔn)確地判斷揮拍擊球時,是否真的擊打到了小球。依據(jù)揮拍動作開始點(diǎn)和結(jié)束點(diǎn)的位置,以及球拍擊打到小球時的速度,可以判斷出此次擊球時什么動作類型,而不是隨心所欲的通過發(fā)按鍵來實(shí)現(xiàn)。本發(fā)明接近真正的健身項(xiàng)目,可以讓用戶足不出戶就可以享受小球運(yùn)動,鍛煉身體。
下面將結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步說明,附圖中圖1是本發(fā)明優(yōu)選實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理方法的攝像頭坐標(biāo)系示意圖;圖2是本發(fā)明優(yōu)選實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理方法的虛擬坐標(biāo)系示意圖;圖3是本發(fā)明優(yōu)選實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理方法的流程圖;圖4是本發(fā)明優(yōu)選實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng)的結(jié)構(gòu)示意圖;圖5是本發(fā)明第二實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖來說明具體實(shí)施方式
。
請參閱圖1,為本發(fā)明優(yōu)選實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理方法的攝像頭坐標(biāo)系示意圖。如圖1所示,攝像頭坐標(biāo)系原點(diǎn)為視頻攝像頭中心,X軸正方向?yàn)樗较蛴?,Y軸正方向?yàn)榇怪毕蛏?,Z軸正方向?yàn)樗较蚝?。該攝像頭坐標(biāo)系用于描述識別模塊中球拍和用戶的各項(xiàng)信息。請結(jié)合參閱圖2,為本發(fā)明優(yōu)選實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理方法的虛擬坐標(biāo)系示意圖。如圖2所示,虛擬坐標(biāo)系原點(diǎn)為球網(wǎng)中心,X軸正方向?yàn)槠叫星蚓W(wǎng)向右, Y軸正方向?yàn)榇怪钡孛嫦蛏希琙軸正方向?yàn)榇怪鼻蚓W(wǎng)向后。該虛擬坐標(biāo)系用于描述顯示模塊中球拍、小球、用戶和對手的各項(xiàng)信息。圖1示出的攝像頭坐標(biāo)系與圖2示出的虛擬坐標(biāo)系,對應(yīng)X軸、Y軸、Z軸分別擁有相同的正方向,相同的數(shù)值大小,因此,該攝像頭坐標(biāo)系中球拍和用戶的各項(xiàng)信息,可以直接應(yīng)用到該虛擬坐標(biāo)系中,形成一一對應(yīng)的映射關(guān)系。請參閱圖3,為本發(fā)明優(yōu)選實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理方法的流程圖。如圖3所示,該方法的流程包括以下步驟1)采集球拍的位置數(shù)據(jù),并計(jì)算出所述球拍的速度數(shù)據(jù)、力度數(shù)據(jù)和用戶的位置數(shù)據(jù);2)計(jì)算擊球前小球的位置數(shù)據(jù);3)根據(jù)所述球拍的位置數(shù)據(jù)和擊球前所述小球的位置數(shù)據(jù)判斷所述球拍是否打中所述小球;4)根據(jù)所述球拍的速度數(shù)據(jù)和/或位置數(shù)據(jù)判斷所述球拍的揮拍類型,并根據(jù)所述球拍的力度數(shù)據(jù)計(jì)算擊球后所述小球的速度數(shù)據(jù);5)計(jì)算擊球后所述小球的位置數(shù)據(jù);6)判斷所述小球是否落入對手半球桌內(nèi)。上述步驟構(gòu)成用戶的一個擊球周期。用戶的擊球周期結(jié)束后,如果用戶擊球成功, 則對手的擊球周期開始。對手的擊球周期結(jié)束后,如果對手擊球成功,那么用戶的擊球周期再次開始。如此循環(huán),直到用戶或者對手其中一方擊球失敗,則本局結(jié)束。如果用戶擊球失敗,那么本局對手勝利;如果對手擊球失敗,那么本局用戶勝利。該用戶的對手可以是虛擬人,即人機(jī)對戰(zhàn),虛擬人由人工智能控制,而人工智能并非本發(fā)明的重點(diǎn),因此不必闡述如何處理虛擬人的運(yùn)動。該用戶的對手也可以是其他用戶, 即兩名用戶對戰(zhàn),其他用戶運(yùn)動的處理方法和該用戶運(yùn)動的處理方法類似,因此也不必闡述如何處理其他用戶的運(yùn)動。下面具體說明本發(fā)明所述方法中的各個步驟。步驟1)具體包括以下步驟11)在球拍上設(shè)置跟蹤點(diǎn),識別模塊不斷采集攝像頭坐標(biāo)系中所述球拍的位置數(shù)
據(jù),為——系列三元坐標(biāo)(X1, Yi, Z1), (x2, Y2, Z2) , ......, (Xi, yi Zi),......,其中(Xi, Ji, Z1)
代表著第i時刻,球拍的位置坐標(biāo)。。12)數(shù)據(jù)處理模塊將球拍的位置數(shù)據(jù)從攝像頭坐標(biāo)系映射到虛擬坐標(biāo)系,顯示模塊實(shí)時顯示虛擬坐標(biāo)系中球拍的位置。根據(jù)一一對應(yīng)的映射關(guān)系,可以將攝像頭坐標(biāo)中球拍的位置坐標(biāo)直接應(yīng)用到虛擬坐標(biāo)系中,同樣為三元坐標(biāo)(Xl,Y1, Z1), (x2, y2, Z2),……, (Xi^yijZi),……,其中(Xi,yi,Zi)代表著第i時亥ij,球拍的位置坐標(biāo)。
13)數(shù)據(jù)處理模塊根據(jù)球拍的位置數(shù)據(jù)計(jì)算用戶的位置數(shù)據(jù),顯示模塊實(shí)時顯示虛擬坐標(biāo)系中用戶的位置??梢愿鶕?jù)球拍位置的三元坐標(biāo)按照預(yù)先設(shè)定的對應(yīng)關(guān)系,比如函數(shù)計(jì)算出用戶位置的三元坐標(biāo)。14)數(shù)據(jù)處理模塊根據(jù)球拍的位置數(shù)據(jù)計(jì)算球拍的速度數(shù)據(jù)和力度數(shù)據(jù)。具體計(jì)算各個數(shù)據(jù)的公式如下第i 時刻的速度 Vix = (Xi-Xi^1)A, Viy = (Vi-Vi^1)A, Viz = (Vi-VH)A,其中 t = l/30s,速度是X、Y、Z三個方向上各個方向上的速度;第i 時刻的加速度 aix = (Vix-V(H)x) /t、aiy = (viy-v(i-1)y) /t、aiz = (viz-v(i_1)z) /t, 其中t = l/30s ;加速度是X、Y、Z三個方向上各個方向上的加速度;第i時刻的力度fix = aixXk、fiy = aiyXk、fiz = ZXk,其中k是一個比例系數(shù), 力度是X、Y、Z三個方向上各個方向上的力度。步驟2)中,數(shù)據(jù)處理模塊根據(jù)對手上次擊球后小球的速度數(shù)據(jù)計(jì)算擊球前小球的位置數(shù)據(jù),顯示模塊實(shí)時顯示虛擬坐標(biāo)系中擊球前小球的位置。步驟3)中,數(shù)據(jù)處理模塊通過計(jì)算判斷小球和球拍是否相交,從而判斷球拍是否打中小球,如果相交則判斷球拍打中小球;否則判斷球拍沒有打中小球,本次擊球失敗。具體包括以下步驟3 1)數(shù)據(jù)處理模塊計(jì)算小球與球拍所在平面之間的距離dl ;32)數(shù)據(jù)處理模塊判斷距離dl是否小于小球的半徑r,如果是則進(jìn)行下一步,否則判斷球拍沒有打中小球,本次擊球失??;33)數(shù)據(jù)處理模塊計(jì)算小球與球拍位置點(diǎn)之間的距離d2 ;34)數(shù)據(jù)處理模塊判斷距離d2是否小于球拍的半徑R,如果是則判斷球拍打中小球;否則判斷球拍沒有打中小球,本次擊球失?。?5)數(shù)據(jù)處理模塊記錄距離d2取到最小值的時刻,作為擊球時刻。步驟4)具體包括以下步驟41)數(shù)據(jù)處理模塊根據(jù)球拍的速度數(shù)據(jù)判斷球拍的揮拍開始與結(jié)束。已知第i 時亥|J,球拍在X、Y、ζ三個方向上的速度分別是vix、viy, Viz ;力度分別是fix、fiy、fiz。如
果三個方向上速度的合速度超過給定的閾值Vtl,S卩v =>v0,則判斷揮拍動作
開始,記錄下該時刻球拍位置的坐標(biāo)(xb,yb, zb) 0此后,當(dāng)合速度小于給定的閾值Vtl,即
V =」V 《< V0,則判斷揮拍動作結(jié)束,記錄下該時刻球拍位置的坐標(biāo)(χε,ye, ζε),同時
記錄下動作開始到動作結(jié)束中各個時刻的合速度,并計(jì)算出合速度的平均值,記為;。42)數(shù)據(jù)處理模塊根據(jù)球拍的速度數(shù)據(jù)和/或位置數(shù)據(jù)判斷球拍的揮拍類型,并且根據(jù)球拍的揮拍類型和力度數(shù)據(jù)計(jì)算擊球后小球的速度數(shù)據(jù)。下述幾種類型的揮拍動作可以通過速度判斷,也可通過位置判斷,還可以通過速度和位置判斷。一、平推球。平推球的特點(diǎn)是,球拍在X軸方向(左右),Y軸方向(上下)上的位移較小,而在Z軸負(fù)方向(向前)上的位移較大。因此,當(dāng)丨知-xJ <dx,|yb-yd| <dy,且
zb-ze >dz,其中dx、dy、dz為預(yù)先設(shè)定的閾值,則判斷此次揮拍動作為平推球。在本發(fā)明中平推球主要對小球在Z軸負(fù)方向上的速度影響較大,依據(jù)擊球時刻,在Z軸負(fù)方向上的用力fiz,給小球一個在Z軸負(fù)方向上的初速度,該速度與fiz成正比,在X軸、Y軸上的初速度直接賦予零值。也可以通過速度判斷是否為平推球,計(jì)算球拍在X軸、Y軸、Z軸方向的速度,如果球拍在Z軸負(fù)方向上的速度較大,且在X軸、Y軸方向的速度幾乎為零,則認(rèn)為是平推球。二、向上挑球。向上挑球的特點(diǎn)是,球拍在X軸方向(左右)上的速度非常小,幾乎為零,而在Y軸正方向(向上)上有較明顯的速度。因此,當(dāng)IvixI < Vq、IviyI > V' 0; 其中Vtl和V'。為預(yù)先設(shè)定的閾值,則判斷此次揮拍動作為向上挑球。在本發(fā)明中向上挑球主要對球在Y軸和Z軸方向上的速度影響較大,因此,依據(jù)擊球時刻,在Y軸、Z軸方向上的用力fiy、fiz ;給球在Y軸,Z軸上分別賦予一個同該軸方向上用力成正比的速度,而對于 X軸方向的速度直接賦予零值(力度也可以和速度成正比)。也可以通過速度判斷是否為向上挑球,判斷方法與平推球類似。三、扣殺球??蹥⑶虻奶攸c(diǎn)是,球拍在Y軸負(fù)方向(向下)、Z軸負(fù)方向(向前)、X 軸方向(左右)上的速度都比較大。因此,當(dāng)IvixI > V0, Viy > V1, Viz > V2,其中v。、 V1^ V2為預(yù)先給定的閾值,即擊球時三個方向有較大的速度。使用扣殺球動作打球時,小球迅速向前下降如果向左的速度大于閾值,S卩IvixI >%且、-^>0則小球有向左偏移的運(yùn)動;如果向右的速度大于閾值,即IvixI > Vtl且< 0則小球有向右偏移的運(yùn)動。在本發(fā)明中,當(dāng)扣殺球動作擊打到小球后,對小球速度的賦值與此動作時在三個方向上的用力成正比,比例是預(yù)先設(shè)定的。四、削球。削球的特點(diǎn)是,球拍在Y軸負(fù)方向(向下)、Z軸負(fù)方向(向前)、X軸方向(左右)上的速度都不為零,但是速度比扣殺球要小。因此,當(dāng)%1>0、、、<0且 V' 0 > I VixI > V(I、V' 1 > I ViyI > Vl、V' 2 > I VizI > V2'其中 V' 0、V(l、V' l、Vl、V' 2、V2 為預(yù)先給定的閾值,則判斷此次揮拍動作為削球如果> O則為向右削球;如果
< 0則為向左削球。在本發(fā)明中,削球動作發(fā)生后,依據(jù)擊球時刻三個方向上的用力情況, 對球在三個方向上分別賦予一個與對應(yīng)方向上的用力情況成正比的速度,且給小球一個自旋速度,該自旋速度的大小與球擊時三個方向作用力的合力的絕對值成正比。以上所述的幾種揮拍類型僅為本發(fā)明實(shí)施例中所適用的揮拍類型,并非因此限制本發(fā)明的專利范圍,本發(fā)明還可以推及至適用其他更多種類的揮拍類型,并且均可以采用本發(fā)明提供的方法進(jìn)行處理。43)數(shù)據(jù)處理模塊根據(jù)球拍的揮拍類型確定用戶的揮拍動作,顯示模塊顯示用戶的揮拍動作,該揮拍動作為預(yù)先設(shè)定的。步驟幻中,數(shù)據(jù)處理模塊根據(jù)擊球后小球的速度數(shù)據(jù)計(jì)算擊球后小球的位置數(shù)據(jù),顯示模塊實(shí)時顯示虛擬坐標(biāo)系中擊球后小球的位置。步驟6)中,數(shù)據(jù)處理模塊通過判斷小球是否過網(wǎng)以及小球是否出界,來判斷小球是否落入對手半球桌內(nèi),如果小球過網(wǎng)并且沒有出界則判斷小球落入對手半球桌內(nèi),本次擊球成功;否則判斷小球沒有落入對手半球桌內(nèi),本次擊球失敗。具體包括以下步驟61)數(shù)據(jù)處理模塊不斷檢測小球的位置數(shù)據(jù),當(dāng)檢測到Z軸方向上的位置坐標(biāo)值出現(xiàn)零值,此時Y軸正方向上的位置坐標(biāo)值大于網(wǎng)的高度,并且X軸方向上的位置坐標(biāo)絕對值小于網(wǎng)的二分之一寬度,則判斷小球過網(wǎng),否則判斷小球沒過網(wǎng),擊球失敗。61)數(shù)據(jù)處理模塊不斷檢測小球的位置數(shù)據(jù),當(dāng)檢測到X、Y、Z三個方向中,任意一方向上的小球的位置坐標(biāo)絕對值超過對方半球卓的邊界坐標(biāo)絕對值,則判斷小球出界,擊球失敗,否則判斷小球沒出界,擊球成功。上述擊球周期適用于用戶發(fā)球和接球兩種情況。請參閱圖4,為本發(fā)明優(yōu)選實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖4所示,該系統(tǒng)包括識別模塊、數(shù)據(jù)處理模塊、顯示模塊和人工智能模塊,適用于用戶與虛擬人對戰(zhàn),即人機(jī)對戰(zhàn)。識別模塊用于不斷采集球拍的位置信息。識別模塊可以是具有跟蹤點(diǎn)識別功能的攝像頭,以每秒鐘30次的頻率對跟蹤點(diǎn)進(jìn)行識別,并記錄該跟蹤點(diǎn),即球拍的位置。數(shù)據(jù)處理模塊與識別模塊相連,用于獲取球拍的位置數(shù)據(jù)、速度數(shù)據(jù)、力度數(shù)據(jù)和用戶的位置數(shù)據(jù),計(jì)算擊球前小球的位置數(shù)據(jù),判斷球拍是否打中小球,判斷球拍的揮拍類型并計(jì)算擊球后小球的速度數(shù)據(jù),計(jì)算擊球后小球的位置數(shù)據(jù),判斷小球落點(diǎn)是否對手半球桌內(nèi)。數(shù)據(jù)處理模塊可以是計(jì)算機(jī)處理器。顯示模塊與處理模塊相連,用于實(shí)時顯示虛擬坐標(biāo)系中小球的位置、用戶球拍的位置、用戶的位置和揮拍動作,以及對手球拍的位置、對手的位置和揮拍動作。顯示模塊可以是顯示器。人工智能模塊與顯示模塊相連用于控制虛擬人的運(yùn)動。人工智能模塊可以是人工智能控制器。請結(jié)合參閱圖5,本發(fā)明第二實(shí)施例提供的基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖5所示,該系統(tǒng)包括依次相連的識別模塊A、數(shù)據(jù)處理模塊A、顯示模塊、數(shù)據(jù)處理模塊B、識別模塊B,適用于兩名用戶對戰(zhàn)。比較圖4和圖5,不同之處在于,第二實(shí)施例用識別模塊B和數(shù)據(jù)處理模塊B來取代優(yōu)選實(shí)施例中的人工智能模塊。因此,第二實(shí)施例中的對手可以是另一名用戶。用于處理兩名用戶運(yùn)動的識別模塊和數(shù)據(jù)處理對應(yīng)相似,此處不再贅述。下面詳細(xì)地描述如何利用本發(fā)明提供的方法及系統(tǒng)實(shí)現(xiàn)羽毛球運(yùn)動項(xiàng)目。啟動終端計(jì)算機(jī),進(jìn)入虛擬健身大廳,啟動羽毛球項(xiàng)目,做些必要的準(zhǔn)備工作,比如,手持羽毛球拍,這樣就可以通過球拍的數(shù)據(jù)點(diǎn)表明用戶前后、左右、上下方向的運(yùn)動;球拍的數(shù)據(jù)點(diǎn)同時也被用于判斷球拍的位置、以及揮拍的動作類型。羽毛球項(xiàng)目程序啟動后顯示器上出現(xiàn)羽毛球打球場景,靠近顯示器外面的場地屬于現(xiàn)實(shí)中人的場地,場地中有一個手持羽毛球拍的3D動畫人物,代表著用戶,用戶的動作, 位置變化都會在這個3D動畫人物中得到體現(xiàn),比如當(dāng)球拍往左、右、前、后移動時,3D動畫人物也會往左、右、前、后做出相同距離的移動;用戶舉起,放下,平持羽毛球拍時,3D動畫人物也會舉起,放下,平持羽毛球拍;同樣,用戶以各種方式打球時,3D動畫人物手中的羽毛球拍也會經(jīng)歷用戶手里羽毛球所經(jīng)歷的位置,羽毛球拍的空間位置數(shù)據(jù)則直接對應(yīng)于3D 動畫人物手中的羽毛球拍的位置。當(dāng)羽毛球運(yùn)動開始后,分以下幾個步驟進(jìn)行。第一步發(fā)球,真實(shí)打球的時候,在發(fā)球時用戶需要向上拋球,在視頻攝像頭前,用戶同樣需要一個上拋動作,可以上揚(yáng)手中的羽毛球拍,根據(jù)羽毛球拍上升過程中的速度,決定拋出的球的高度;然后可以像實(shí)現(xiàn)中打球一樣,將球打出去,在這個拋棄、打球的發(fā)球過程,會一直計(jì)算球拍的位置和球的位置,若兩者位置相交,則球被擊中了,擊中后,球就會按被擊的情況做出運(yùn)動動作。至此,一個完整的發(fā)球過程結(jié)束了。
第二步發(fā)球后,球會有三種結(jié)果,a、球打出場了,b、球在球桌上沒有過網(wǎng),C、球打到了對方場地,發(fā)球成功;對于a、b兩種情況可以直接處理為發(fā)球失敗,需要繼續(xù)處理的是 c種情況。此時,球已經(jīng)傳到了對方場地,這時該對手接球,即一個具有人工智能的虛擬人接球,它接/發(fā)球的水平依據(jù)設(shè)定而已,在本發(fā)明中,主要闡述的是用戶打球動作、以及打球效果如何在顯示器上顯示出來,而人工智能并非本發(fā)明的重點(diǎn),所以不闡述具有人工智能的虛擬人是如何接發(fā)球的。第三步接球,當(dāng)具有人工智能的虛擬人發(fā)球成功,或者成功接到用戶打過去的球,就輪到用戶接球了。首先,用戶要評估代表自己的3D動畫人物離將要接的球的位置,若代表用戶的3D動畫人物離估計(jì)的落球點(diǎn)較遠(yuǎn),則需要移動自己的身體位置,移動身體的過程中,代表用戶的3D動畫人物也會做出相同的位置移動,因此,跟現(xiàn)實(shí)中打球一樣,先估計(jì)到落球點(diǎn)在哪個位置,然后做出相應(yīng)的移動,若落球點(diǎn)在3D動畫人物左邊,向左邊移動;若落球點(diǎn)在3D動畫人物左前方,向左前方移動;若具有人工智能的虛擬人打過來力度較大, 且離球網(wǎng)的距離較遠(yuǎn),而代表用戶的3D動畫人物離球桌較近,用戶需要往后移動;移動到其他位置接球的各種情況的道理和這里列舉的相同。移動到合適的位置后,就可以像現(xiàn)實(shí)中打球一樣,可以扣球,削球,平推球等等,具體應(yīng)該怎么接球,應(yīng)該視對手打過來的球,和自己個人打球水平、習(xí)慣而定。但無論以什么方式去接球,本發(fā)明中,首先判斷此次揮拍接球是否打中了球,如果沒有打中球,則接球失敗,若接到了球,則按照此次接球的動作類型,以及力度等因素,改變球的運(yùn)動速度、旋轉(zhuǎn)速度。然后,計(jì)算此次接球后,球在各個時刻的空間位置,若落入對方半球桌之外,則此次接球失敗,重新發(fā)球或接人工智能虛擬人發(fā)過來的球;若落入對方半球桌之內(nèi),則此次接球成功,繼續(xù)準(zhǔn)備接下一個球。至此,完整地描述了如何利用本發(fā)明提供的方法及系統(tǒng)實(shí)現(xiàn)羽毛球運(yùn)動項(xiàng)目。以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
1權(quán)利要求
1.一種基于計(jì)算機(jī)的小球運(yùn)動處理方法,其特征在于,包括以下步驟1)采集球拍的位置數(shù)據(jù),并計(jì)算出所述球拍的速度數(shù)據(jù)、力度數(shù)據(jù)和用戶的位置數(shù)據(jù);2)計(jì)算擊球前小球的位置數(shù)據(jù);3)根據(jù)所述球拍的位置數(shù)據(jù)和擊球前所述小球的位置數(shù)據(jù)判斷所述球拍是否打中所述小球;4)根據(jù)所述球拍的速度數(shù)據(jù)和/或位置數(shù)據(jù)判斷所述球拍的揮拍類型,并根據(jù)所述球拍的力度數(shù)據(jù)計(jì)算擊球后所述小球的速度數(shù)據(jù);5)計(jì)算擊球后所述小球的位置數(shù)據(jù);6)判斷所述小球是否落入對手半球桌內(nèi)。
2.根據(jù)權(quán)利要求1所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法,其特征在于,所述步驟1) 進(jìn)一步包括11)在所述球拍上設(shè)置跟蹤點(diǎn),不斷采集攝像頭坐標(biāo)系中所述球拍的位置數(shù)據(jù);12)將所述球拍的位置數(shù)據(jù)從所述攝像頭坐標(biāo)系映射到虛擬坐標(biāo)系,并實(shí)時顯示所述虛擬坐標(biāo)系中所述球拍的位置;13)根據(jù)所述球拍的位置數(shù)據(jù)計(jì)算所述用戶的位置數(shù)據(jù),并實(shí)時顯示所述虛擬坐標(biāo)系中所述用戶的位置;14)根據(jù)所述球拍的位置數(shù)據(jù)計(jì)算所述球拍的速度數(shù)據(jù)和力度數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法,其特征在于,所述步驟2) 中,根據(jù)所述對手上次擊球后所述小球的速度數(shù)據(jù)計(jì)算擊球前所述小球的位置數(shù)據(jù),并實(shí)時顯示所述虛擬坐標(biāo)系中擊球前所述小球的位置。
4.根據(jù)權(quán)利要求1所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法,其特征在于,所述步驟3) 中,通過計(jì)算判斷所述小球的位置點(diǎn)到所述球拍所在平面的距離是否大于所述小球的半徑,大于則說明所述球拍和小球沒有相交,否則繼續(xù)計(jì)算判斷所述小球的位置點(diǎn)到所述球拍的位置點(diǎn)的距離是否大于所述球拍的半徑,大于則說明所述球拍和小球沒有相交,否則說明所述球拍和小球相交,如果相交則判斷所述球拍打中所述小球;如果不相交則判斷所述球拍沒有打中所述小球,本次擊球失敗。
5.根據(jù)權(quán)利要求1所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法,其特征在于,所述步驟4) 進(jìn)一步包括41)根據(jù)所述球拍的速度數(shù)據(jù)判斷所述球拍的揮拍開始與結(jié)束;42)根據(jù)所述球拍的速度數(shù)據(jù)和/或位置數(shù)據(jù)判斷所述球拍的揮拍類型,并且根據(jù)所述球拍的揮拍類型和力度數(shù)據(jù)計(jì)算擊球后所述小球的速度數(shù)據(jù);43)根據(jù)所述球拍的揮拍類型確定并顯示所述用戶的揮拍動作。
6.根據(jù)權(quán)利要求5所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法,其特征在于,所述球拍的揮拍類型包括平推球、向上挑球、扣殺球、削球,其中,所述平推球的特點(diǎn)是,所述球拍在左右和上下的位移較小,而向前的位移較大;所述向上挑球的特點(diǎn)是,所述球拍在左右的速度非常小,幾乎為零,而在向上有較明顯的速度;所述扣殺球的特點(diǎn)是,所述球拍在向下、向前和左右的速度都比較大;所述削球的特點(diǎn)是,所述球拍在向下、向前和左右的速度都不為零,但是所述速度比所述扣殺球要小。
7.根據(jù)權(quán)利要求1所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法,其特征在于,所述步驟5) 中,根據(jù)擊球后所述小球的速度數(shù)據(jù)計(jì)算擊球后所述小球的位置數(shù)據(jù),并實(shí)時顯示所述虛擬坐標(biāo)系中擊球后所述小球的位置。
8.根據(jù)權(quán)利要求1所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法,其特征在于,所述步驟6) 中,通過判斷所述小球是否過網(wǎng)以及所述小球是否出界,來判斷所述小球是否落入對手半球桌內(nèi),如果所述小球過網(wǎng)并且沒有出界則判斷所述小球是否落入對手半球桌內(nèi),本次擊球成功;否則判斷所述小球沒有落入所述對手半球桌內(nèi),本次擊球失敗。
9.根據(jù)權(quán)利要求1、3、8中任意一項(xiàng)所述的基于計(jì)算機(jī)的小球運(yùn)動處理方法,其特征在于,所述對手為虛擬人或其他用戶,其中,所述虛擬人的運(yùn)動由人工智能控制,所述其他用戶運(yùn)動的處理方法與所述用戶運(yùn)動的處理方法對應(yīng)相似。
10.一種基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng),其特征在于,包括識別模塊、數(shù)據(jù)處理模塊和顯示模塊,其中,所述識別模塊用于不斷采集所述球拍的位置信息;所述數(shù)據(jù)處理模塊與所述識別模塊相連,用于獲取球拍的位置數(shù)據(jù)、速度數(shù)據(jù)、力度數(shù)據(jù)和用戶的位置數(shù)據(jù),計(jì)算擊球前小球的位置數(shù)據(jù),判斷所述球拍是否打中所述小球,判斷所述球拍的揮拍類型并計(jì)算擊球后所述小球的速度數(shù)據(jù),計(jì)算擊球后所述小球的位置數(shù)據(jù),判斷所述小球落點(diǎn)是否對手半球桌內(nèi);所述顯示模塊與所述數(shù)據(jù)處理模塊相連,用于實(shí)時顯示所述虛擬坐標(biāo)系中所述小球的位置、所述用戶球拍的位置、所述用戶的位置和揮拍動作,以及所述對手球拍的位置、所述對手的位置和揮拍動作。
11.根據(jù)權(quán)利要求10所述的基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng),其特征在于,所述系統(tǒng)還包括人工智能模塊,與顯示模塊相連接,用于控制所述虛擬人的運(yùn)動。
12.根據(jù)權(quán)利要求10所述的基于計(jì)算機(jī)的小球運(yùn)動處理系統(tǒng),其特征在于,所述系統(tǒng)還包括與所述識別模塊和數(shù)據(jù)處理模塊的功能以及連接方式對應(yīng)相似的另一套識別模塊和數(shù)據(jù)處理模塊。
全文摘要
本發(fā)明涉及一種基于計(jì)算機(jī)的小球運(yùn)動處理方法,包括以下步驟采集球拍的位置數(shù)據(jù),并計(jì)算出所述球拍的速度數(shù)據(jù)、力度數(shù)據(jù)和用戶的位置數(shù)據(jù);計(jì)算擊球前小球的位置數(shù)據(jù);根據(jù)所述球拍的位置數(shù)據(jù)和擊球前所述小球的位置數(shù)據(jù)判斷所述球拍是否打中所述小球;根據(jù)所述球拍的速度數(shù)據(jù)和/或位置數(shù)據(jù)判斷所述球拍的揮拍類型,并根據(jù)所述球拍的力度數(shù)據(jù)計(jì)算擊球后所述小球的速度數(shù)據(jù);計(jì)算擊球后所述小球的位置數(shù)據(jù);判斷所述小球是否落入對手半球桌內(nèi)。本發(fā)明還公開了實(shí)現(xiàn)該方法的系統(tǒng)。利用本發(fā)明公開的方法和系統(tǒng),能更準(zhǔn)確地反映出用戶位置和揮拍動作,能準(zhǔn)確地判斷出是否打中了小球,并且能判斷揮拍的動作類型,十分接近真實(shí)的健身項(xiàng)目。
文檔編號G06F3/01GK102446359SQ201010504158
公開日2012年5月9日 申請日期2010年10月12日 優(yōu)先權(quán)日2010年10月12日
發(fā)明者劉琦, 彭立焱, 曹立, 陳亮亮 申請人:深圳泰山在線科技有限公司