top of page

摘要

疫情可能成為日常生活的常態,對於一些需要戶外場地練習的運動的初學者,例如:高爾夫揮桿,會造成學習上的不方便。因此,發展一套可以利用居家練習並可了解揮桿姿勢上的好壞,變得非常重要。首先利用手機的慢動作攝影,擷取揮桿動作的影片,並發展一個基於人工智慧的深度學習平行神經網路自動辨識揮桿的動作階段,最後利用動態時間規整演算法比對初學者與有經驗者的姿勢,並給予一成績。透過此模型,每一揮桿階段的辨識準確平均可達93%,F1-measure亦達94%。未來,本研究將提供網路服務,使居家學習者隨了解自身學習狀況。

研究背景

高爾夫運動近年來越來越多人參與,而揮杆姿勢對於高爾夫初學者是重要的。當揮杆姿勢不對時,球杆的角度也會不對,進而影響球進行方向的精准度。由於需要在極短時間完成複雜的揮杆動作,如果動作不良,不論是很明顯的姿勢不正確,或是細微的小部分姿勢偏了,身體可能承受立即或者是慢性累積的傷害(A., McHardy, H., Pollard, 2005)。而為了有良好的揮杆姿勢,大多數的人都會去上課程,但高爾夫教學昂貴,所以初學者或業餘選手常常會錄影,用來與專業選手或教學影片比對來查看自己的揮杆姿勢是否正確,但這種方法無法確切得知自己是否有在進步、進步多少,而所需要的專業器材(例如:高速攝影機)或穿戴裝置要價不菲,並不是每個人都負擔的起,即使負擔的起這些費用,想要前往球場學習,遇到疫情期間就變得相當困難。

研究目的

因此本研究目的是希望能夠透過大眾容易取得的裝置,例如:智慧型手機、電腦等,並且可以在家中使用,利用自行拍攝揮桿的影片並通過AlphaPose抓取骨架,以及CNN、bidirectional LSTM結合Keras的TimeDistributed層封裝器(Layer wrapper)進行揮桿分析,並帶入計算揮桿姿勢成績的系統,將結果及姿勢評分給使用者,讓使用者快速知道哪些部分需要改進,期望藉由此研究降低高爾夫的入門門檻。

研究流程

本研究流程分成四個階段,包括蒐集資料、資料前處理、訓練模型。高爾夫選手揮桿的影片來源為Youtube及自行拍攝,並篩選符合條件的影片進行後續的處理。第二階段將影片拆分成圖片,取得每張圖片的骨架,並修正標記錯誤的骨架,將其製作成資料集,第三階段訓練AI模型並測試模型正確性及結果後處理,最後得到模型判斷的四階段揮桿動作,將與標準揮桿者動作相比得出各階段與整體的揮桿分數。

資料蒐集與前置處理

研究利用Youtube與自行拍攝的影片,並採用240FPS的影片,共有38部影片,將其影片拆成每一幀存成圖片。經過觀察專業運動員,並且與運動專家們的多方討論,本研究將揮桿動作拆分為四大步驟,分別為定桿、上桿、下桿、收桿。
在揮桿的動作中,本研究注重手腳的動作變化,透過AlphaPose的技術提取出所需之十二個人體部位的座標點,分別為雙手的手腕、手軸、肩膀,以及雙腳的腳踝、膝蓋、髖骨。因本研究主要針對身體姿勢進行分析、比較,若從後方朝擊球目標方向拍攝,將使AlphaPose高機率出現骨架辨識錯誤,導致下一步的流程獲得錯誤資訊而誤判,故拍攝角度統一固定為正面(揮桿者正臉前方)拍攝。
在手的部分,每隔三張圖算出斜率,使得雙手每一個點有X軸、Y軸及斜率;在腳的部分為雙腳的腳踝、膝蓋、髖骨共六個點,每一個點有X軸、Y軸,因為腳的變化沒有像手有大幅度的改變,因此無需使用計算斜率變化。利用滑動視窗增加訓練的資料量,以視窗長度大小為30張圖片,步長為1張圖片的視窗進行滑動。

揮桿動作.png

模型設計與後處理

本研究主要透過監督式學習的模型作為基礎,將手跟腳分別輸入進模型,建議一個平行的精神網路,而揮杆動作擁有時間序,因此本研究利用兩層TimeDistributed加上LSTM。在手的部分,使用的神經元兩層皆為64個,提取手部的特徵;腳的部分參數少,用的神經元分別為32個與64個。接下來將手與腳一同放入雙向遞迴神經網路,bidirectional LSTM的好處是可以通過以前資訊及其未來資訊,來推斷出當前的資訊,此層本研究採用神經單元設定為64個,而在最後一層TimeDistributed全連接層以Softmax啟動函數讓模型判斷該動作階段最可能為何種揮桿階段。
在模型得出結果後,因仍會有判斷錯誤的地方,例如,在定桿期間判斷出少數的上桿等,因此需要將結果後處理,在定桿、上桿、收桿類別時,本研究將最後一次判定到此類別之前皆替換為該類別,而在下桿階段時,本研究將上桿與下桿的總時間乘以0.07判定為下桿,以提升最終的準確性。
本研究透過準確性(Accuracy)及F1 score來分析模型是否達成目標,數值越高代表模型能夠越精準的分析揮桿動作。

模型架構圖.png

模型預測結果

本研究共測試15部影片選手的揮桿動作,結果如下表格2所示,在定杆準確度達到95.36%,F1 score為0.94;上杆準確度達到94.50%,F1 score為0.93;下杆準確度達到83.97%,F1 score為0.90,收杆準確度達到99.36%,F1 score為0.99,整體準確率達到93.90%。
定杆測試集中共有2434個,預測到了2321個,上杆測試集中一共3850個,預測到了3638個,下杆測試集資料共有1709個,預測到了1435個,收杆測試集資料共有2045個,預測到了2032個。在定桿到上桿以及上桿到下桿的交界處仍需要再改進,在交界部分動作容易重疊或界線模糊,人工標記容易標記錯誤或模型容易判斷錯誤。

高爾夫混淆.png

成績計算比較

經過整體程式流程,資料集的Youtube影片與自行拍攝的揮桿影片皆獲得整體的揮桿分數並依照此分數作順序排名,以60分為及格標準線來看,因為測試選手皆為初學者,所以無法達到及格分數,可以發現在最後幾位成績偏低,是因為其測試者揮桿姿勢與標準姿勢相差甚遠。

分數.png

結論

本研究僅使用手機拍攝揮桿影片即可完成揮桿姿勢分析,並利用兩層的TimeDistributed加上LSTM技術,充分的處理時間序列中需要保留的訊息,將需要傳遞的訊息保留,不須傳遞的訊息漸漸遺忘、刪除,再配合滑動窗口,使模型更容易將揮桿階段分類出來,達成本研究可以更方便的完成揮桿姿勢分析之目的。在計算分數方面,期望能尋找到更佳的演算法來達成。未來如有更充分的經費與時間,我們計畫延伸此主題,將動作分得更詳細、定義更加明確,並且架設伺服器,於網路上提供網頁與App服務,透過開發帳號功能抑或是本地端的記錄功能,使用者可以清楚了解各個時間點自身的揮桿狀況,例如,尚需加強何種階段的動作、自己是否正在成長或是退步、透過數值化了解進步或是退步詳情等。若再次碰上疫情,也因僅需要手機拍攝,使用者在家即可自行完成揮桿練習,不必前往球場,亦不需花錢請教練,本研究開發之系統旨在以低成本創造高效益。

bottom of page