跳到主要內容

← 作品

網球 AI Coach

利用 3D Pose AI 打造運動員的數位孿生教練。把揮拍的 3D 骨架資料,變成學習者看得懂的分數和改善建議。

角色
負責動作分析、圖表視覺化
技術
PythonNumPyscikit-learnChart.jsThree.jsOpenAI API
影片分析結果的操作流程從首頁進到儀表板,接著是 3D 骨架播放、切換視角,最後是三球綜合報告。畫面中的真人影片已經做模糊處理。

我接手的是哪一段

前段已經能把一次揮拍變成 3D 骨架的軌跡。但原始座標對選手沒有意義,他想知道的是哪個動作哪裡有問題、先改什麼。

影片裡看到的三個畫面

  1. 1

    儀表板

    一次揮拍的總分、能力雷達圖,以及每個動作面向的分數和建議。

    網球動作分析儀表板:總分、雷達圖與各面向分數
  2. 2

    3D 骨架

    可以播放,也可以切換正面、側面、背面、上方四種視角,對照軌跡看動作。

    3D 骨架與軌跡
  3. 3

    三球綜合報告

    整段練習的分數和文字建議,可以列印成 A4 或簡易版。

    三球綜合報告

做了什麼

我把動作拆成 8 個面向來分析:後擺、前擺、擊球、隨球、重心、拍面、擊球區、頭部穩定。每個面向是獨立的模組,用 K 近鄰把使用者的動作和專家的資料比對,再依關節角度和位置的差異寫出建議。

最後由一個整合層把各面向的分數合起來,算出總分,挑出最該先改的項目。報告和 3D 頁面也由我串在一起。

我做的動作分析

每個面向會先找出對應的時間點,例如球落地、擊球瞬間、收拍完成,再檢查那一刻的關節角度和位置,和專家資料的分布比較。

8 個動作面向與檢查重點
  • 後擺(拉拍)

    看哪個時間點
    球落地前後
    檢查重點
    側身是否完整(肩線與腰線的旋轉角度)、手腕高度、拍頭朝向,以及球落地時是否已經拉拍到位
  • 前擺(出拍)

    看哪個時間點
    球彈起到擊球前
    檢查重點
    手腕是否下放、拍頭朝後;手腕是否向前帶動球拍;擊球前拍頭朝下的角度
  • 擊球

    看哪個時間點
    擊球瞬間
    檢查重點
    轉身的幅度;手腕高度是否在膝蓋到肩膀之間,以及相對身體朝向的位置
  • 隨球(收拍)

    看哪個時間點
    擊球後到收拍完成
    檢查重點
    手腕是否往左肩方向收、收到接近肩膀的高度,收拍時拍頭是否朝下
  • 重心

    看哪個時間點
    擊球瞬間與擊球後
    檢查重點
    擊球時膝蓋彎曲的程度;擊球後重心是否往前移
  • 拍面

    看哪個時間點
    擊球後
    檢查重點
    用球飛出去的路徑和地面的夾角,推估擊球時的拍面角度
  • 擊球區

    看哪個時間點
    擊球瞬間
    檢查重點
    擊球點在身體的上下、前後、左右位置,以骨盆寬度換算後和專家的分布比較
  • 頭部穩定

    看哪個時間點
    擊球前到擊球後
    檢查重點
    頭部是否和身體一起平行移動;耳朵到眼睛的連線是否維持不變(眼睛有沒有盯球);有沒有揮空或打到拍框