季云峰, 黃 睿, 施之皓, 任 杰
(1. 上海體育學院 中國乒乓球?qū)W院,上海 200438;2. 上海理工大學 機器智能研究院,上海 200093)
乒乓球的致勝因素分為速度、力量、旋轉(zhuǎn)、落點、弧線。其中,旋轉(zhuǎn)是乒乓球比賽中最核心的致勝因素。乒乓球的旋轉(zhuǎn)主要源于乒乓球與球拍、球臺之間的摩擦。由于它們在碰撞過程中,并不是絕對光滑的接觸,而是有摩擦力的作用,故而導(dǎo)致乒乓球所受合力偏離了球的重心而發(fā)生旋轉(zhuǎn)。由于乒乓球體積小、質(zhì)量輕,離心的摩擦力會使其產(chǎn)生較大的旋轉(zhuǎn)速度。這種高速旋轉(zhuǎn)將產(chǎn)生一個與旋轉(zhuǎn)角速度矢量和線速度矢量組成的平面相垂直的馬格努斯力,該力量導(dǎo)致整個乒乓球的運動軌跡發(fā)生偏移。運動員在擊球過程中,需要對乒乓球的旋轉(zhuǎn)進行預(yù)判,進而預(yù)估乒乓球的落點。運動員對乒乓球落點的預(yù)判是基于經(jīng)驗的判斷,而對于乒乓球科研而言,需要設(shè)計算法找到乒乓球運動軌跡和旋轉(zhuǎn)之間的聯(lián)系,利用數(shù)據(jù)對運動員進行更加直觀的指導(dǎo)。
目前,對乒乓球旋轉(zhuǎn)與軌跡之間聯(lián)系的研究主要集中在乒乓球機器人控制領(lǐng)域,若使乒乓球機器人準確地擊打乒乓球,就必須準確預(yù)測乒乓球的軌跡[1-5]。目前,在乒乓球無旋轉(zhuǎn)的情況下,可以較準確地預(yù)測其軌跡。Zhang等[6-7]假設(shè)平行于接觸平面的2個方向上的速度在碰撞前后呈線性關(guān)系,在碰撞平面的法線方向上,利用彈性恢復(fù)系數(shù)得到了乒乓球碰撞后的速度,然后根據(jù)受力情況采用近似的物理模型對乒乓球的運動軌跡進行預(yù)測。該方法的優(yōu)點是預(yù)測時間短,可以滿足實時性,但參數(shù)的不確定性導(dǎo)致不能精確建模,難以推廣到旋轉(zhuǎn)球的應(yīng)用中。
針對有旋轉(zhuǎn)的乒乓球軌跡的預(yù)測問題,任艷青等[8-9]較全面地分析了馬格努斯力對飛行軌跡的影響。他們設(shè)計了一種基于模糊BP神經(jīng)網(wǎng)絡(luò)的軌跡預(yù)測分類器,該分類器經(jīng)過離線訓練之后可以在一定程度上區(qū)分球是否旋轉(zhuǎn),但是對球的旋轉(zhuǎn)分類很簡單,數(shù)據(jù)量也不夠,誤差較大。季云峰等[10-11]針對無特殊標記乒乓球的旋轉(zhuǎn)計算問題提出了一種新的計算方法,在假設(shè)乒乓球上的商標被準確檢測出來的情況下,利用5幀圖像中商標的運動軌跡計算乒乓球旋轉(zhuǎn)速度及方向。其核心思想主要是根據(jù)3D轉(zhuǎn)2D投影中軌跡會發(fā)生變化計算旋轉(zhuǎn)軸的角度,并在后續(xù)的優(yōu)化算法中將5幀圖像縮短為連續(xù)的4幀圖像。
張遠輝等[12]利用擴展卡爾曼濾波方法對旋轉(zhuǎn)球的角速度進行在線測量,但是該方法的計算量很大,誤差也較大,很難滿足測量要求的實時性。張康潔等[13]通過分析旋轉(zhuǎn)乒乓球飛行過程的運動學模型,采用無跡卡爾曼濾波思想構(gòu)建過程方程和觀測方程,利用視覺系統(tǒng)觀測到的三維空間位置信息對線速度和角速度進行估計。孫智宇[14]采用Extreme Learning Machines (ELM)算法對乒乓球的旋轉(zhuǎn)進行分類估計,將旋轉(zhuǎn)類型分為上旋、下旋和側(cè)旋3種,在乒乓球的旋轉(zhuǎn)運動軌跡中找到連續(xù)10幀圖像作為ELM算法的輸入,然后創(chuàng)建ELM模式識別網(wǎng)絡(luò)。該算法在分類準確度和計算時間上有了一定進步,但算法較為簡單,分類不夠細致,很難應(yīng)用于真實的對打環(huán)境。
目前的旋轉(zhuǎn)軌跡預(yù)測算法對旋轉(zhuǎn)的分類較為簡單,但在實際的對打過程中,僅對乒乓球的旋轉(zhuǎn)進行簡單分類不能滿足正常回球需要。針對這一問題,本文通過設(shè)計實驗獲得乒乓球精確的初始位置坐標、精確的初始速率及方向、精確的旋轉(zhuǎn)速率及方向,把這9個初始數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的輸入信息,將精確的落點坐標作為輸出信息,利用人工神經(jīng)網(wǎng)絡(luò)算法探討輸入、輸出信息之間的相關(guān)性,為精確預(yù)測旋轉(zhuǎn)球的軌跡提供理論及實驗基礎(chǔ),為后續(xù)應(yīng)用于乒乓球機器人擊打旋轉(zhuǎn)球提供參考。
1.1實驗系統(tǒng)本實驗設(shè)計的數(shù)據(jù)采集實驗系統(tǒng)包括2臺中速攝像機、2臺高速攝像機、1臺高精度發(fā)球機、2臺補光燈和1臺同步燈,并在乒乓球桌后面擺放一塊記分牌和一幅長3.5 m、寬2 m的幕布。整套系統(tǒng)的設(shè)計思路是控制發(fā)球機發(fā)不同類型的旋轉(zhuǎn)球,利用2臺中速攝像機拍攝球的整個運動軌跡,利用2臺高速攝像機拍攝乒乓球的旋轉(zhuǎn)軌跡,再綜合運動軌跡和旋轉(zhuǎn)軌跡的數(shù)據(jù)信息進行分析。其中:中速攝像機擺放在乒乓球桌的兩邊,速度為250幀/s,對乒乓球的整個運動軌跡進行拍攝;同步燈在發(fā)球機發(fā)球的瞬間亮起,以便于后續(xù)處理運動軌跡時對2臺中速攝像機進行同步。高速攝像機放在乒乓球桌兩邊,主要拍攝發(fā)球機剛發(fā)出球的旋轉(zhuǎn)軌跡,速度采用3 000幀/s,利用乒乓球上商標的旋轉(zhuǎn)來確定乒乓球的旋轉(zhuǎn)速度。不同的擺放位置是為了擴大視野,確保至少有1臺高速攝像機能清晰地拍攝到乒乓球的商標。拍攝過程中會遇到拍攝不到商標的情況,這種情況比較少見,將其舍棄,重新拍攝。2臺補光燈用來對乒乓球的整個運動軌跡進行補光,以方便后續(xù)數(shù)據(jù)的采集,擺放位置以不影響攝像機拍攝為主,覆蓋整個乒乓球桌即可。
1.2實驗數(shù)據(jù)的采集在本實驗中,主要是采用SIMI Motion軟件對運動軌跡進行分析處理。SIMI Motion軟件是一款基于三維錄像的、可分析各種形式運動及動作的軟件系統(tǒng),目前被廣泛應(yīng)用于體育運動的技術(shù)分析及教學中。它主要是利用多臺攝像機同步拍攝物體的運動軌跡,利用多維立體架進行定標,手動標記關(guān)節(jié)點,可以自動獲得物體移動的二維及三維數(shù)據(jù),從而進行坐標值、速度、加速度以及標記點之間角度等多種數(shù)據(jù)的計算。本實驗主要利用SIMI Motion軟件與2臺攝像機同步獲得乒乓球的運動軌跡數(shù)據(jù)。SIMI Motion軟件的多維立體架如圖1所示,通過拍攝2臺攝像機中的多維立體架,手動標記立體架上的白色圓點,即可完成定標。
圖1 SIMI Motion軟件多維立體架Figure 1 Multi-dimensional shelf of SIMI Motion software
事先對2臺中速攝像機進行定標,之后利用同步燈同步2個視頻的時間,再利用SIMI Motion軟件手動標記確定每幀圖片中乒乓球的空間位置,如圖2所示,從而獲得乒乓球整個運動軌跡的三維數(shù)據(jù)。
獲得完整的運動軌跡后計算乒乓球的旋轉(zhuǎn)速度,旋轉(zhuǎn)速度是一個矢量,有大小和方向。
高速攝像機可以拍攝發(fā)球機發(fā)射乒乓球初始階段的旋轉(zhuǎn)軌跡。圖3(a)為乒乓球剛出發(fā)球機口時的狀態(tài),此時記為視頻中的第n1幀;圖3(b)為乒乓球旋轉(zhuǎn)1周時的狀態(tài),此時記為視頻中第n2幀。高速攝像機的幀率為3 000幀/s,從而可以得到乒乓球旋轉(zhuǎn)速度為3 000/(n2-n1)(r/s)。
圖2 2臺攝像機拍攝運動軌跡Figure 2 The trajectory of ball movement with two cameras
圖3 高速攝像機拍攝乒乓球的旋轉(zhuǎn)軌跡Figure 3 The rotation of ball movement with high-speed cameras
旋轉(zhuǎn)方向是通過發(fā)球機控制的,發(fā)球機通過2個滑輪對乒乓球進行摩擦產(chǎn)生旋轉(zhuǎn),通過控制上下滑輪的速率和方向控制旋轉(zhuǎn)速度(大小和方向)。本實驗將發(fā)球機能發(fā)出來的所有旋轉(zhuǎn)類型發(fā)球都進行了實驗,一共有9種旋轉(zhuǎn)類型的發(fā)球,依次為上旋、下旋、不轉(zhuǎn)、左旋、右旋、左側(cè)上旋、左側(cè)下旋、右側(cè)上旋、右側(cè)下旋。旋轉(zhuǎn)類型說明如表1所示。
表1 發(fā)球機發(fā)球的旋轉(zhuǎn)類型Table 1 Rotation type of tables tennis from the serve machine
由表1可見,由于發(fā)球機的局限性,只能發(fā)出這9種類型的球,滑輪與水平方向的夾角決定了球的旋轉(zhuǎn)方向,而由于發(fā)球機的出球口是水平的,故出球方向是水平的。通過前文所述,可以獲得球的速度,而出球口的初始位置已知,因此可以獲得精確的9個初始數(shù)據(jù),分別為:初始位置x方向的坐標(x),初始位置y方向的坐標(y),初始位置z方向的坐標(z),初始位置x方向的速度(vx),初始位置y方向的速度(vy),初始位置z方向的速度(vz),初始位置x方向的旋轉(zhuǎn)速度(ωx),初始位置y方向的旋轉(zhuǎn)速度(ωy),初始位置z方向的旋轉(zhuǎn)速度(ωz)。坐標系原點設(shè)在發(fā)球機所在臺面的中點,橫坐標沿橫向臺面,縱坐標沿縱向臺面,縱坐標垂直于臺面。發(fā)球機共發(fā)了171個有效球,涵蓋9種類型的發(fā)球,并獲得了所有球的9個初始數(shù)據(jù)及落點數(shù)據(jù)。因落點都是在臺面上,故縱坐標值為0。
2.1人工神經(jīng)網(wǎng)絡(luò)簡介人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANNs)是一種模擬大腦內(nèi)部神經(jīng)機理進行信息處理的數(shù)學模型,由大量功能簡單的神經(jīng)元以某種拓撲結(jié)構(gòu)連接而成。神經(jīng)網(wǎng)絡(luò)示意如圖4所示。
圖4 神經(jīng)網(wǎng)絡(luò)示意Figure 4 Schematic of neural network
神經(jīng)網(wǎng)絡(luò)中各個神經(jīng)元從前一級得到輸入,輸出給下一級神經(jīng)元,通過非線性函數(shù)的多次復(fù)合進行信息處理,同時根據(jù)修正信號反向修正權(quán)值,降低誤差,最終實現(xiàn)信號從輸入層到輸出層的變換。
2.2確定輸入輸出神經(jīng)元本實驗使用MATLAB模式識別函數(shù)對不同速度、旋轉(zhuǎn)類型的乒乓球軌跡落點坐標進行預(yù)測,輸入層神經(jīng)元節(jié)點數(shù)維數(shù)m=9,為前文所述的9個初始數(shù)據(jù),記為
乒乓球的旋轉(zhuǎn)類型共有9種。對于每一種旋轉(zhuǎn)類型,設(shè)計不同的軌跡發(fā)球20種,共計180種。在實驗過程中,由于發(fā)球機的局限性以及攝像機拍攝等原因會造成一些實驗數(shù)據(jù)的缺失,最終導(dǎo)致獲得的有效數(shù)據(jù)共171組,基本被9種旋轉(zhuǎn)類型數(shù)據(jù)均分。在171組有效數(shù)據(jù)中,隨機選取70%(即119個數(shù)據(jù))作為訓練樣本,隨機選取15%(即26個數(shù)據(jù))作為修正樣本,剩余的15%(即26個數(shù)據(jù))作為測試樣本,驗證擬合的關(guān)聯(lián)度。
確定輸入輸出神經(jīng)元后,接下來要確定隱藏層的節(jié)點數(shù),參照經(jīng)驗公式
h=0.43mn+0.12n2+2.54m+0.77n+0.35+0.51
來計算節(jié)點數(shù),代入m和n的值,并進行四舍五入即可計算出隱藏層節(jié)點數(shù)為6。
2.3神經(jīng)網(wǎng)絡(luò)擬合算法選擇MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中的擬合算法,依次對Levenberg-Marquardt、Bayesian Regularization以及Scaled Conjugate Gradient算法進行實驗。實驗結(jié)果表明,Levenberg-Marquardt算法的擬合效果最好,故本文選擇Levenberg-Marquardt算法[15-18],擬合步驟如下:
(1) 選取初始權(quán)值W。
(2) 輸入初始訓練樣本(M1,M2,…,Mq),其中,q=119,共119組訓練數(shù)據(jù)。
(5) 計算所有樣本實際輸出與期望輸出的誤差之和,e=∑[(t-l)2/2]。其中,t為期望輸出。
(7) 返回步驟(2),直至滿足以下條件之一跳出:誤差達到要求;訓練步數(shù)超過定值;μ值超過給定的最大值。
本文的擬合算法選用Levenberg-Marquardt算法是因為其擬合效果較好,抗噪能力強,擬合時間短,比較適合于本實驗,接下來對實驗流程進行描述。
2.4實驗步驟本文使用MATLAB中的神經(jīng)網(wǎng)絡(luò)工具箱實現(xiàn)神經(jīng)網(wǎng)絡(luò)的設(shè)計,具體的實驗步驟如下:
(1) 采集數(shù)據(jù),將輸入、輸出數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫。
(3) 建立神經(jīng)網(wǎng)絡(luò),設(shè)置輸入節(jié)點、輸出節(jié)點、隱含層節(jié)點及傳輸函數(shù)初始結(jié)構(gòu)。
(4) 將訓練次數(shù)、訓練目標、誤差等參數(shù)設(shè)置好,開始進行訓練,并加入修正數(shù)據(jù)進行權(quán)值修正。
(5) 訓練流程如圖5所示,訓練結(jié)束后輸入測試數(shù)據(jù)進行測試。
2.5實驗結(jié)果根據(jù)上述步驟利用MATLAB神經(jīng)網(wǎng)絡(luò)工具箱進行訓練,訓練結(jié)果如圖6所示??梢姡寒斢柧毚螖?shù)為14次時出現(xiàn)最小的均方誤差,為0.057 159;當訓練次數(shù)為14次時,豎虛線與3條實線相交,3條實線從上向下依次為驗證數(shù)據(jù)、測試數(shù)據(jù)和訓練數(shù)據(jù)的均方誤差曲線。
圖7所示為神經(jīng)網(wǎng)絡(luò)的訓練狀態(tài)。圖7(a)表示訓練梯度的變化,可以看出,梯度值隨著訓練次數(shù)的增加總體呈下降的趨勢,當訓練次數(shù)為20次時,梯度值為0.001 598 8。圖7(b)表示Mu值的變化趨勢,本文的擬合算法選擇的是Levenberg Marquardt算法,Mu值是該算法中的一個參數(shù),其隨著誤差變大而增加,直到誤差不再增加為止。當訓練次數(shù)為20時,Mu值為0.001,并保持穩(wěn)定。圖7(c)表示訓練過程中的有效驗證次數(shù),可以看出,當訓練次數(shù)為20時,有效驗證次數(shù)為6次。
圖5 訓練流程Figure 5 Training flowchart
圖6 均方誤差曲線Figure 6 Mean square error curves
圖7 神經(jīng)網(wǎng)絡(luò)的訓練狀態(tài)Figure 7 Training state of network
圖8所示為擬合結(jié)果。圖中:虛線代表預(yù)期結(jié)果,R值代表的是預(yù)期結(jié)果和擬合結(jié)果的相關(guān)系數(shù),并且R∈[0,1]。一般而言,R值越接近1,說明擬合結(jié)果與預(yù)期結(jié)果越接近。在本實驗中,訓練及測試結(jié)果中的R值分別在9.5和9.3以上,這說明初始速度、旋轉(zhuǎn)類型及初始位置坐標與球落點坐標之間存在很大的相關(guān)性,本文選擇的方法也較為適當。
圖8 擬合結(jié)果Figure 8 Fitted results
本文的創(chuàng)新點體現(xiàn)在以下幾點:①設(shè)計全新實驗獲得精確的速度、旋轉(zhuǎn)類型及位置坐標信息;②第1次利用精確的速度、旋轉(zhuǎn)數(shù)據(jù)預(yù)測乒乓球的落點信息,之前的研究都是對乒乓球的旋轉(zhuǎn)進行模糊分類預(yù)測乒乓球的運動軌跡,但分類太粗糙,對旋轉(zhuǎn)球的真實軌跡預(yù)測不理想;③選用合適的擬合算法,擬合效果良好,便于后續(xù)研究。作為第1次探討精確速度、旋轉(zhuǎn)數(shù)據(jù)對落點影響的實驗,本文同樣存在一些問題和不足:①數(shù)據(jù)較為單一,發(fā)球機集中在中路發(fā)球,軌跡較為類似;②旋轉(zhuǎn)方向類型受限,旋轉(zhuǎn)數(shù)據(jù)不夠全面;③發(fā)球機發(fā)球旋轉(zhuǎn)速度最高為90 r/s,而運動員最高可擊打出的旋轉(zhuǎn)速度為170 r/s。
受設(shè)備及環(huán)境影響,數(shù)據(jù)量在短時間內(nèi)無法擴充。本文的主要目的是證明乒乓球的旋轉(zhuǎn)與運動軌跡之間的相關(guān)性很大,這可為后續(xù)利用乒乓球軌跡反推旋轉(zhuǎn)作為理論依據(jù)。乒乓球旋轉(zhuǎn)是最重要的制勝因素,研究乒乓球的特征必須將旋轉(zhuǎn)加入,筆者希望設(shè)計實驗驗證乒乓球旋轉(zhuǎn)直接影響乒乓球的運動軌跡,故通過其相關(guān)性來證明。最終Levenberg-Marquardt擬合相關(guān)性達到90%以上,雖然受到數(shù)據(jù)樣本量的困擾,并未達到最理想的效果,但是在一定程度上已經(jīng)可以證明乒乓球旋轉(zhuǎn)與運動軌跡之間的相關(guān)性很大。同時,針對以上不足之處,在后續(xù)研究中擬對運動員擊打球進行測試,同時設(shè)計旋轉(zhuǎn)計算公式,結(jié)合圖像處理方面的知識完成旋轉(zhuǎn)測速的自動化,以滿足更多的實驗設(shè)計。希望在后續(xù)工作中可以完善乒乓球軌跡預(yù)測算法,提高預(yù)測精度,縮短預(yù)測時間,最終能應(yīng)用于乒乓球機器人,為其擊打旋轉(zhuǎn)乒乓球奠定基礎(chǔ)。