高爾夫揮桿姿勢
即時檢測系統
資訊管理學系
研究摘要
Abstract
研究目的
本研究旨在開發一套結合電腦視覺與深度學習技術的高爾夫揮桿自動化分析系統,以提供球員在非專業場域中亦能獲得客觀、量化且具一致性的動作評估與訓練回饋。
研究背景
傳統高爾夫揮桿學習模式多依賴教練經驗與學員主觀體感,缺乏可量化的姿勢監測機制,且市面上具量測功能之感測裝置往往價格高昂、使用限制多,導致一般球友或初學者難以取得完整姿勢分析資訊。
研究方法
本研究採用 SwingNet 模型進行揮桿影片時序事件偵測,能自動辨識揮桿影片中八個標準揮桿階段,建立具一致性的動作節奏分段基準。接著利用 MediaPipe Pose 進行 33 個人體骨架關鍵點定位,並以幾何向量運算推算各階段之肘、膝、體幹、骨盆與肩線相關角度,以形成具生物力學依據的姿勢分析資料。
系統特色
本系統不需額外感測器或穿戴裝置,即可在一般攝影環境下取得量化姿勢資訊,具備可擴充性、可重複性與使用便利性。透過階段性姿勢量測與角度資料,本研究希望協助不同經驗層級之使用者檢視自身揮桿姿勢,並提供後續整合策略以支援個人化動作改善建議的生成。
研究價值
最終,本研究期望能降低專業訓練門檻,並提升揮桿姿勢分析之普及性、客觀性與效率,成為非侵入式、低成本之運動科技輔助工具原型,作為未來體育智慧化訓練系統之研究基礎。
緒論
Introduction
研究動機
近年來人工智慧(Artificial Intelligence, AI)與電腦視覺(Computer Vision)技術快速發展,影像辨識已廣泛應用於醫療診斷、運動科學、智慧教練輔助等領域,使動作分析逐漸從傳統依賴經驗判斷轉向客觀化與量化的數據分析。
高爾夫揮桿是一個複合性與連續性的精細動作,涉及軀幹旋轉、上下肢協調與穩定控制,其姿勢差異即可能影響擊球距離、準確度與球路軌跡。然而一般學習者多仰賴教練口頭指導或自我體感評估,缺乏實際量化的生物力學參數作為依據,因此容易造成長期錯誤動作習慣與訓練效率不佳的問題。
研究問題
現有揮桿分析系統多依賴穿戴式感測器、動作捕捉儀或高階量測儀器,雖具高精度,但成本昂貴、使用限制高且不便於一般練習場域普及,因此發展以純影像為基礎的低成本揮桿分析工具具有實用價值。
研究目標
本研究以揮桿影像自動化分析技術為核心,採用 SwingNet 進行揮桿影片的八階段動作分段辨識,建立標準化時序基準,並使用 MediaPipe Pose 偵測 33 個骨架關節點,以計算肘關節、膝關節、體幹傾角、骨盆旋轉與肩線方向等量化運動參數。本研究期望透過此流程達成無需額外裝備即可取得姿勢評估資訊的目標,提高訓練便利性、可及性與一致性。
研究貢獻
本系統具有低成本、可跨場域操作、可重複量測等優點,能協助學習者以更客觀的方式理解動作差異,並作為後續導入智能分析與訓練建議的基礎。本研究期望成果能作為運動科技與個人化訓練輔助系統的初步驗證,並提供未來延伸至更高維度生物力學分析或即時教練輔助系統的發展方向。
相關技術與研究
Technology & Related Work
SwingNet 揮桿動作分段模型
核心功能
SwingNet 是一個用來分析「影片中動作進行到哪一個階段」的模型。高爾夫揮桿並不是單一動作,而是依時間順序分成多個重要階段,例如準備動作、上桿、下桿、擊球與收尾等。SwingNet 會觀看整段揮桿影片,並自動判斷每一幀影像所對應的階段。
技術架構
SwingNet 是一個結合卷積神經網路 (CNN)與雙向長短期記憶網路 (Bi-LSTM)的混合式深度模型,用於從高爾夫揮桿影片中逐影格預測八個揮桿事件的發生位置。
MediaPipe Pose
核心功能
MediaPipe Pose 是一套可以從影片畫面中偵測人體骨架的技術,它可以觀察出使用者的頭、肩膀、手肘、膝蓋、手腕、腳踝等 33 個身體重要點。透過這些點的座標,就可以計算出手腳彎曲角度、身體前傾程度或旋轉方向。
技術特色
MediaPipe 就像一個會從影像中畫出「人體火柴人」的工具,讓我們能根據關節位置做分析。系統能即時偵測全身 33 個關鍵點,計算肘關節、膝關節、體幹前傾與骨盆旋轉等生物力學參數。
幾何向量運算
核心功能
基於 MediaPipe Pose 偵測的骨架關鍵點座標,利用向量內積與三角函數計算各關節角度。包含上肢(肘、腕)、下肢(膝、踝)、軀幹核心(骨盆、體幹、肩線)等多維度角度分析。
計算方法
透過三個關鍵點形成兩個向量,利用向量夾角公式計算關節角度。例如:肘關節角度 = arccos((向量1·向量2) / (|向量1|×|向量2|)),建立完整的動作量化模型。
GPT 智能回饋系統
核心功能
將量化角度數據與標準範圍進行比對後,透過 GPT 大型語言模型生成自然語言建議。將冰冷的數字轉化為具體易懂的動作指導。
應用實例
系統會分析如「右肘角度 154°(標準範圍 90-120°)」,GPT 會生成建議:「右肘過度張開,試著貼近身體,可以提升揮桿穩定性與力量傳遞效率。」
研究方法
Methodology
系統開發流程
本研究之整體實作流程可分為四個主要階段:揮桿影片輸入與前處理、SwingNet 分段預測、MediaPipe Pose 骨架偵測與角度計算、階段姿勢分析與匯出結果。此流程使原始影像資料依序轉換為具有訓練價值之量化姿勢參數,為後續比對與建議產生建立基礎。
1. 影片前處理
使用者可提供一般攝影設備拍攝之揮桿影片。為提高模型判斷穩定性,本研究在前處理階段執行下列操作:
• 影片解析度統一調整
• 影格抽取(Frame Extraction)
• 時間序列輸出以符合 SwingNet 需求
此步驟確保資料輸入模型時格式一致並具適當時間序列密度。
2. SwingNet 揮桿階段辨識
本研究採 SwingNet 模型對揮桿影片進行八階段動作辨識。透過 MobileNetV2 萃取影格視覺特徵,再由 Bidirectional LSTM 分析時間關聯性,最終以 Softmax 輸出各影格所屬之揮桿階段機率。本步驟之目的為:
• 將整段揮桿影片標準化分段
• 避免依賴人工判讀造成不一致與主觀誤差
• 提供後續角度分析之時間定位基準
3. MediaPipe Pose 骨架關鍵點偵測與角度計算
於 SwingNet 分段結果中選取各階段代表影格後,使用 MediaPipe Pose 偵測該影格中之 33 個人體關鍵點位置,接著透過向量運算與三角函數計算以下生物力學參數:
• 上肢關節:肘角、腕部線性方向
• 下肢關節:膝角、腳踝角度支撐穩定性
• 軀幹核心:骨盆旋轉角度、體幹前傾角度、肩線方向
此步驟之目標為將揮桿姿勢具體轉化為可量化數值資料。
4. 姿勢分析與結果呈現
本研究最後將各階段關節角度整合後進行初步判讀與可視化輸出,包含:
• 每階段關節角度參數表
• 文字化姿勢描述
• 常見揮桿動作偏誤指標對照
此階段可支援後續深度研究或延伸為訓練建議生成模組。
實驗結果與系統展示
System Demonstration
步驟1:使用者模擬揮桿動作
使用者操作揮桿系統,系統自動進行前處理與影格擷取
步驟2:MediaPipe 骨架偵測
即時偵測 33 個人體關鍵點,建立完整骨架模型
步驟3:角度計算與分析
透過幾何運算計算肘、膝、體幹等關鍵角度參數
步驟4:SwingNet 階段辨識後透過GPT輸出即時回饋
自動偵測並標記揮桿的八個關鍵階段
系統分析結果示例
Top of Swing (上桿頂點) 階段分析:
• 右肘角度:154° (標準範圍:90-120°)
→ 建議:右肘過度張開,建議保持手臂更貼近身體,有助於維持揮桿平面的一致性
Impact (擊球) 階段分析:
• 體幹前傾角度:12.2° (標準範圍:25-35°)
→ 建議:上半身前傾不足,建議在擊球瞬間保持更多的前傾角度,有助於提升擊球穩定性與力量傳遞
GPT 綜合建議:
"您的揮桿節奏良好,但在上桿階段右肘角度過大,容易造成揮桿平面不穩定。建議練習時注意保持右肘貼近身體。另外,擊球時上半身前傾角度不足,這可能影響擊球的扎實度,建議在設置站姿時就建立足夠的前傾角度,並在整個揮桿過程中維持。"
結論
Conclusion
研究成果總結
綜合本專題的設計與實作歷程,可以將成果概括為:建立了一套從「揮桿影片」一路走到「文字化教練建議」的完整分析流程。系統首先透過 SwingNet 將連續揮桿影片切分為八個動作階段,解決了「不知道這一幀到底算不上桿還是下桿」的時間定位問題;接著利用 MediaPipe Pose 擷取人體 33 個關鍵點,計算出肘、膝、體幹、骨盆、肩線等角度指標,將原本主觀的姿勢印象,轉換為可以量化比對的數值。
最後,再由 GPT 依據每一階段的角度與標準範圍落差,生成結合專業用語與一般人易懂描述的自然語言建議,讓使用者不只看到「角度差了幾度」,也能理解「該怎麼調整動作」。整體而言,本專題已完成一個由「影像 → 階段 → 骨架 → 角度 → 文字回饋」的端到端揮桿分析雛型。
系統優勢
硬體成本低:只需要一般攝影設備即可取得分析所需的資料,不必安裝感測器或進入實驗室級的量測環境,對一般球友或練習場的導入門檻相對較低。
自動化分段:利用 SwingNet 自動判定揮桿階段,避免人工逐格標記,讓之後要分析更多影片時,具備可擴充性與重複使用性。
量化數據:結合 MediaPipe Pose 的骨架偵測與自訂角度計算公式,使得每一次揮桿都能留下可比較的數據紀錄,未來無論是同一位使用者的進步追蹤,或是不同使用者之間的差異分析,都有了共同的量化基準。
智能回饋:引入 GPT 產生文字回饋,讓「冷冰冰的數字」轉換成具體的動作提醒與說明,對沒有生物力學背景的使用者來說,更容易理解問題出在哪裡。
研究限制
分段精度:SwingNet 的分段結果,仍會受到影片拍攝角度、揮桿節奏差異與資料集分佈的影響,有些階段(尤其是起始準備與結束姿勢)較容易出現偏移,導致後續角度對應到的階段不一定完全精準。
2D 限制:MediaPipe Pose 雖然提供了方便的骨架資訊,但本質上仍以單一視角的 2D/2.5D 推估為主,當身體有較大旋轉或部分關節被遮蔽時,角度計算難免存在誤差。
標準化差異:目前的角度建議主要基於一般通用的生物力學標準,尚未針對不同年齡、性別或身體素質的使用者進行客製化的參數調整。
未來展望
基於本研究的基礎,未來可朝以下方向進行優化與延伸:
1. 導入 3D 姿態估計:將現有的 2D 骨架偵測升級為 3D 模型(如 MediaPipe Pose World Coordinates),以解決拍攝角度造成的投影誤差,提供更精確的旋轉角度數據。
2. 行動裝置應用程式化:將 Python 程式碼移植至行動裝置環境(如 iOS 或 Android App),讓使用者能在練習場即拍即測,提升實用性。
3. 建立個人化訓練歷程:引入資料庫系統,記錄使用者長期的揮桿數據,透過趨勢分析追蹤進步幅度,並提供更具個人化的長期訓練處方。
專題心得
Reflection
開發歷程與體悟
在進行「高爾夫揮桿姿勢即時檢測系統」的開發過程中,我深刻體會到將學術理論轉化為實際應用的挑戰與樂趣。從最初選定題目時的雄心壯志,到實際串接 SwingNet 模型時遇到的環境相容性問題,再到 MediaPipe 骨架點位在快速揮桿時的飄移現象,每一個環節都考驗著解決問題的能力。
特別是在「跨模型整合」的部分,如何讓負責時間分段的 SwingNet 與負責空間分析的 MediaPipe 順暢協作,是本專題最大的技術瓶頸。經過不斷的除錯與參數調整,當我第一次看到系統能在終端機中準確印出「Top 階段:右肘角度過大」的建議時,那份成就感是無法言喻的。
自我成長
透過這次畢業專題,我不僅精進了 Python 程式設計、深度學習框架(PyTorch)與電腦視覺(OpenCV)的技術能力,更重要的是學習到了「系統化思考」的重要性。如何將一個模糊的需求(改善揮桿)拆解為具體的技術指標(角度、時間點),再透過程式邏輯去實現,這是我在大學四年中最寶貴的收穫。
感謝指導教授邱昭彰老師的悉心指導,以及系上提供的資源,讓我能夠順利完成這個結合興趣(運動)與專業(資訊管理)的專題作品。
參考文獻
References
- McNally, W., Vats, K., Pinto, T., Dulhanty, C., McPhee, J., & Wong, A. (2019). GolfDB: A Video Database for Golf Swing Sequencing. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops.
- Lugaresi, C., Tang, J., Nash, H., McClanahan, C., Uboweja, E., Hays, M., ... & Grundmann, M. (2019). MediaPipe: A framework for building perception pipelines. arXiv preprint arXiv:1906.08172.
- OpenAI. (2023). GPT-4 Technical Report. arXiv preprint arXiv:2303.08774.
- Hume, P. A., Keogh, J., & Reid, D. (2005). The role of biomechanics in maximising distance and accuracy of golf shots. Sports medicine, 35(5), 429-449.
- Chu, Y., Sell, T. C., & Lephart, S. M. (2010). The relationship between biomechanical variables and driving performance during the golf swing. Journal of Sports Sciences, 28(11), 1251-1259.