季云峰, 黃 睿, 施之皓, 任 杰
(1. 上海體育學院 中國乒乓球學院,上海 200438;2. 上海理工大學 機器智能研究院,上海 200093)
乒乓球的致勝因素分為速度、力量、旋轉、落點、弧線。其中,旋轉是乒乓球比賽中最核心的致勝因素。乒乓球的旋轉主要源于乒乓球與球拍、球臺之間的摩擦。由于它們在碰撞過程中,并不是絕對光滑的接觸,而是有摩擦力的作用,故而導致乒乓球所受合力偏離了球的重心而發生旋轉。由于乒乓球體積小、質量輕,離心的摩擦力會使其產生較大的旋轉速度。這種高速旋轉將產生一個與旋轉角速度矢量和線速度矢量組成的平面相垂直的馬格努斯力,該力量導致整個乒乓球的運動軌跡發生偏移。運動員在擊球過程中,需要對乒乓球的旋轉進行預判,進而預估乒乓球的落點。運動員對乒乓球落點的預判是基于經驗的判斷,而對于乒乓球科研而言,需要設計算法找到乒乓球運動軌跡和旋轉之間的聯系,利用數據對運動員進行更加直觀的指導。
目前,對乒乓球旋轉與軌跡之間聯系的研究主要集中在乒乓球機器人控制領域,若使乒乓球機器人準確地擊打乒乓球,就必須準確預測乒乓球的軌跡[1-5]。目前,在乒乓球無旋轉的情況下,可以較準確地預測其軌跡。Zhang等[6-7]假設平行于接觸平面的2個方向上的速度在碰撞前后呈線性關系,在碰撞平面的法線方向上,利用彈性恢復系數得到了乒乓球碰撞后的速度,然后根據受力情況采用近似的物理模型對乒乓球的運動軌跡進行預測。該方法的優點是預測時間短,可以滿足實時性,但參數的不確定性導致不能精確建模,難以推廣到旋轉球的應用中。
針對有旋轉的乒乓球軌跡的預測問題,任艷青等[8-9]較全面地分析了馬格努斯力對飛行軌跡的影響。他們設計了一種基于模糊BP神經網絡的軌跡預測分類器,該分類器經過離線訓練之后可以在一定程度上區分球是否旋轉,但是對球的旋轉分類很簡單,數據量也不夠,誤差較大。季云峰等[10-11]針對無特殊標記乒乓球的旋轉計算問題提出了一種新的計算方法,在假設乒乓球上的商標被準確檢測出來的情況下,利用5幀圖像中商標的運動軌跡計算乒乓球旋轉速度及方向。其核心思想主要是根據3D轉2D投影中軌跡會發生變化計算旋轉軸的角度,并在后續的優化算法中將5幀圖像縮短為連續的4幀圖像。
張遠輝等[12]利用擴展卡爾曼濾波方法對旋轉球的角速度進行在線測量,但是該方法的計算量很大,誤差也較大,很難滿足測量要求的實時性。張康潔等[13]通過分析旋轉乒乓球飛行過程的運動學模型,采用無跡卡爾曼濾波思想構建過程方程和觀測方程,利用視覺系統觀測到的三維空間位置信息對線速度和角速度進行估計。孫智宇[14]采用Extreme Learning Machines (ELM)算法對乒乓球的旋轉進行分類估計,將旋轉類型分為上旋、下旋和側旋3種,在乒乓球的旋轉運動軌跡中找到連續10幀圖像作為ELM算法的輸入,然后創建ELM模式識別網絡。該算法在分類準確度和計算時間上有了一定進步,但算法較為簡單,分類不夠細致,很難應用于真實的對打環境。
目前的旋轉軌跡預測算法對旋轉的分類較為簡單,但在實際的對打過程中,僅對乒乓球的旋轉進行簡單分類不能滿足正?;厍蛐枰a槍@一問題,本文通過設計實驗獲得乒乓球精確的初始位置坐標、精確的初始速率及方向、精確的旋轉速率及方向,把這9個初始數據作為神經網絡的輸入信息,將精確的落點坐標作為輸出信息,利用人工神經網絡算法探討輸入、輸出信息之間的相關性,為精確預測旋轉球的軌跡提供理論及實驗基礎,為后續應用于乒乓球機器人擊打旋轉球提供參考。
1.1實驗系統本實驗設計的數據采集實驗系統包括2臺中速攝像機、2臺高速攝像機、1臺高精度發球機、2臺補光燈和1臺同步燈,并在乒乓球桌后面擺放一塊記分牌和一幅長3.5 m、寬2 m的幕布。整套系統的設計思路是控制發球機發不同類型的旋轉球,利用2臺中速攝像機拍攝球的整個運動軌跡,利用2臺高速攝像機拍攝乒乓球的旋轉軌跡,再綜合運動軌跡和旋轉軌跡的數據信息進行分析。其中:中速攝像機擺放在乒乓球桌的兩邊,速度為250幀/s,對乒乓球的整個運動軌跡進行拍攝;同步燈在發球機發球的瞬間亮起,以便于后續處理運動軌跡時對2臺中速攝像機進行同步。高速攝像機放在乒乓球桌兩邊,主要拍攝發球機剛發出球的旋轉軌跡,速度采用3 000幀/s,利用乒乓球上商標的旋轉來確定乒乓球的旋轉速度。不同的擺放位置是為了擴大視野,確保至少有1臺高速攝像機能清晰地拍攝到乒乓球的商標。拍攝過程中會遇到拍攝不到商標的情況,這種情況比較少見,將其舍棄,重新拍攝。2臺補光燈用來對乒乓球的整個運動軌跡進行補光,以方便后續數據的采集,擺放位置以不影響攝像機拍攝為主,覆蓋整個乒乓球桌即可。
1.2實驗數據的采集在本實驗中,主要是采用SIMI Motion軟件對運動軌跡進行分析處理。SIMI Motion軟件是一款基于三維錄像的、可分析各種形式運動及動作的軟件系統,目前被廣泛應用于體育運動的技術分析及教學中。它主要是利用多臺攝像機同步拍攝物體的運動軌跡,利用多維立體架進行定標,手動標記關節點,可以自動獲得物體移動的二維及三維數據,從而進行坐標值、速度、加速度以及標記點之間角度等多種數據的計算。本實驗主要利用SIMI Motion軟件與2臺攝像機同步獲得乒乓球的運動軌跡數據。SIMI Motion軟件的多維立體架如圖1所示,通過拍攝2臺攝像機中的多維立體架,手動標記立體架上的白色圓點,即可完成定標。

圖1 SIMI Motion軟件多維立體架Figure 1 Multi-dimensional shelf of SIMI Motion software
事先對2臺中速攝像機進行定標,之后利用同步燈同步2個視頻的時間,再利用SIMI Motion軟件手動標記確定每幀圖片中乒乓球的空間位置,如圖2所示,從而獲得乒乓球整個運動軌跡的三維數據。
獲得完整的運動軌跡后計算乒乓球的旋轉速度,旋轉速度是一個矢量,有大小和方向。
高速攝像機可以拍攝發球機發射乒乓球初始階段的旋轉軌跡。圖3(a)為乒乓球剛出發球機口時的狀態,此時記為視頻中的第n1幀;圖3(b)為乒乓球旋轉1周時的狀態,此時記為視頻中第n2幀。高速攝像機的幀率為3 000幀/s,從而可以得到乒乓球旋轉速度為3 000/(n2-n1)(r/s)。

圖2 2臺攝像機拍攝運動軌跡Figure 2 The trajectory of ball movement with two cameras

圖3 高速攝像機拍攝乒乓球的旋轉軌跡Figure 3 The rotation of ball movement with high-speed cameras
旋轉方向是通過發球機控制的,發球機通過2個滑輪對乒乓球進行摩擦產生旋轉,通過控制上下滑輪的速率和方向控制旋轉速度(大小和方向)。本實驗將發球機能發出來的所有旋轉類型發球都進行了實驗,一共有9種旋轉類型的發球,依次為上旋、下旋、不轉、左旋、右旋、左側上旋、左側下旋、右側上旋、右側下旋。旋轉類型說明如表1所示。

表1 發球機發球的旋轉類型Table 1 Rotation type of tables tennis from the serve machine
由表1可見,由于發球機的局限性,只能發出這9種類型的球,滑輪與水平方向的夾角決定了球的旋轉方向,而由于發球機的出球口是水平的,故出球方向是水平的。通過前文所述,可以獲得球的速度,而出球口的初始位置已知,因此可以獲得精確的9個初始數據,分別為:初始位置x方向的坐標(x),初始位置y方向的坐標(y),初始位置z方向的坐標(z),初始位置x方向的速度(vx),初始位置y方向的速度(vy),初始位置z方向的速度(vz),初始位置x方向的旋轉速度(ωx),初始位置y方向的旋轉速度(ωy),初始位置z方向的旋轉速度(ωz)。坐標系原點設在發球機所在臺面的中點,橫坐標沿橫向臺面,縱坐標沿縱向臺面,縱坐標垂直于臺面。發球機共發了171個有效球,涵蓋9種類型的發球,并獲得了所有球的9個初始數據及落點數據。因落點都是在臺面上,故縱坐標值為0。
2.1人工神經網絡簡介人工神經網絡(Artificial Neural Networks,ANNs)是一種模擬大腦內部神經機理進行信息處理的數學模型,由大量功能簡單的神經元以某種拓撲結構連接而成。神經網絡示意如圖4所示。

圖4 神經網絡示意Figure 4 Schematic of neural network
神經網絡中各個神經元從前一級得到輸入,輸出給下一級神經元,通過非線性函數的多次復合進行信息處理,同時根據修正信號反向修正權值,降低誤差,最終實現信號從輸入層到輸出層的變換。
2.2確定輸入輸出神經元本實驗使用MATLAB模式識別函數對不同速度、旋轉類型的乒乓球軌跡落點坐標進行預測,輸入層神經元節點數維數m=9,為前文所述的9個初始數據,記為

乒乓球的旋轉類型共有9種。對于每一種旋轉類型,設計不同的軌跡發球20種,共計180種。在實驗過程中,由于發球機的局限性以及攝像機拍攝等原因會造成一些實驗數據的缺失,最終導致獲得的有效數據共171組,基本被9種旋轉類型數據均分。在171組有效數據中,隨機選取70%(即119個數據)作為訓練樣本,隨機選取15%(即26個數據)作為修正樣本,剩余的15%(即26個數據)作為測試樣本,驗證擬合的關聯度。
確定輸入輸出神經元后,接下來要確定隱藏層的節點數,參照經驗公式
h=0.43mn+0.12n2+2.54m+0.77n+0.35+0.51
來計算節點數,代入m和n的值,并進行四舍五入即可計算出隱藏層節點數為6。
2.3神經網絡擬合算法選擇MATLAB神經網絡工具箱中的擬合算法,依次對Levenberg-Marquardt、Bayesian Regularization以及Scaled Conjugate Gradient算法進行實驗。實驗結果表明,Levenberg-Marquardt算法的擬合效果最好,故本文選擇Levenberg-Marquardt算法[15-18],擬合步驟如下:
(1) 選取初始權值W。
(2) 輸入初始訓練樣本(M1,M2,…,Mq),其中,q=119,共119組訓練數據。
(5) 計算所有樣本實際輸出與期望輸出的誤差之和,e=∑[(t-l)2/2]。其中,t為期望輸出。

(7) 返回步驟(2),直至滿足以下條件之一跳出:誤差達到要求;訓練步數超過定值;μ值超過給定的最大值。
本文的擬合算法選用Levenberg-Marquardt算法是因為其擬合效果較好,抗噪能力強,擬合時間短,比較適合于本實驗,接下來對實驗流程進行描述。
2.4實驗步驟本文使用MATLAB中的神經網絡工具箱實現神經網絡的設計,具體的實驗步驟如下:
(1) 采集數據,將輸入、輸出數據導入數據庫。

(3) 建立神經網絡,設置輸入節點、輸出節點、隱含層節點及傳輸函數初始結構。
(4) 將訓練次數、訓練目標、誤差等參數設置好,開始進行訓練,并加入修正數據進行權值修正。
(5) 訓練流程如圖5所示,訓練結束后輸入測試數據進行測試。
2.5實驗結果根據上述步驟利用MATLAB神經網絡工具箱進行訓練,訓練結果如圖6所示??梢姡寒斢柧毚螖禐?4次時出現最小的均方誤差,為0.057 159;當訓練次數為14次時,豎虛線與3條實線相交,3條實線從上向下依次為驗證數據、測試數據和訓練數據的均方誤差曲線。
圖7所示為神經網絡的訓練狀態。圖7(a)表示訓練梯度的變化,可以看出,梯度值隨著訓練次數的增加總體呈下降的趨勢,當訓練次數為20次時,梯度值為0.001 598 8。圖7(b)表示Mu值的變化趨勢,本文的擬合算法選擇的是Levenberg Marquardt算法,Mu值是該算法中的一個參數,其隨著誤差變大而增加,直到誤差不再增加為止。當訓練次數為20時,Mu值為0.001,并保持穩定。圖7(c)表示訓練過程中的有效驗證次數,可以看出,當訓練次數為20時,有效驗證次數為6次。

圖5 訓練流程Figure 5 Training flowchart

圖6 均方誤差曲線Figure 6 Mean square error curves

圖7 神經網絡的訓練狀態Figure 7 Training state of network
圖8所示為擬合結果。圖中:虛線代表預期結果,R值代表的是預期結果和擬合結果的相關系數,并且R∈[0,1]。一般而言,R值越接近1,說明擬合結果與預期結果越接近。在本實驗中,訓練及測試結果中的R值分別在9.5和9.3以上,這說明初始速度、旋轉類型及初始位置坐標與球落點坐標之間存在很大的相關性,本文選擇的方法也較為適當。

圖8 擬合結果Figure 8 Fitted results
本文的創新點體現在以下幾點:①設計全新實驗獲得精確的速度、旋轉類型及位置坐標信息;②第1次利用精確的速度、旋轉數據預測乒乓球的落點信息,之前的研究都是對乒乓球的旋轉進行模糊分類預測乒乓球的運動軌跡,但分類太粗糙,對旋轉球的真實軌跡預測不理想;③選用合適的擬合算法,擬合效果良好,便于后續研究。作為第1次探討精確速度、旋轉數據對落點影響的實驗,本文同樣存在一些問題和不足:①數據較為單一,發球機集中在中路發球,軌跡較為類似;②旋轉方向類型受限,旋轉數據不夠全面;③發球機發球旋轉速度最高為90 r/s,而運動員最高可擊打出的旋轉速度為170 r/s。
受設備及環境影響,數據量在短時間內無法擴充。本文的主要目的是證明乒乓球的旋轉與運動軌跡之間的相關性很大,這可為后續利用乒乓球軌跡反推旋轉作為理論依據。乒乓球旋轉是最重要的制勝因素,研究乒乓球的特征必須將旋轉加入,筆者希望設計實驗驗證乒乓球旋轉直接影響乒乓球的運動軌跡,故通過其相關性來證明。最終Levenberg-Marquardt擬合相關性達到90%以上,雖然受到數據樣本量的困擾,并未達到最理想的效果,但是在一定程度上已經可以證明乒乓球旋轉與運動軌跡之間的相關性很大。同時,針對以上不足之處,在后續研究中擬對運動員擊打球進行測試,同時設計旋轉計算公式,結合圖像處理方面的知識完成旋轉測速的自動化,以滿足更多的實驗設計。希望在后續工作中可以完善乒乓球軌跡預測算法,提高預測精度,縮短預測時間,最終能應用于乒乓球機器人,為其擊打旋轉乒乓球奠定基礎。