# 2022/1/27 劍道輔助App Survey
## 大專生研究計畫分工
共編連結: https://docs.google.com/document/d/1G_Q8d9WxyTEg9hf57giSOBiG6U7JPcaQJsZTVjZnyCY/edit
1. (一)、(二)、(三) * 2(人): 葉欣瑜、傅宣妮
2. (四)、(五)、(七) * 3(人): 張鈞富、葉揚昀、朱佳恩
## 功能
1. 記錄使用者做幾次動作:使用者可以預設該動作要做幾次,系統會自動幫忙計算使用者做了幾次,完成時會給提醒。
2. 用影像辨識判斷使用者的動作使否正確,如果不正確系統會產生語音(或螢幕)之類的回饋給使用者
3. 相關影片教學
- 根據不同種類的動作分類成不同的影片清單,讓使用者可以針對想要加強的部分,能夠迅速找到相關的影片觀看並練習
- 將動作拆解成多個影片,讓使用者可以針對不同的部位加強(克服沒有劍的情況下,仍然可以練習)
- 影片教學:一一講解每個步驟的需要注意的點(揮劍角度、步伐踩法)
4. 辨識教學: 握刀方法(手部骨架辨識)、中段、滑步、正面劈刀、右胴劈刀...
5. 回饋:透過影像辨識,判斷使用者骨架之間的相對位置是否符合預設的正確姿勢,若不符合就提供語音的提醒,例如:持劍的高度比預設低,就會跳出提醒請使用者手抬高
6. 使用者歷史數據(紀錄正確率、建議、歷史圖表)
- 正確率:正確次數/練習次數
- 歷史數據:透過折線圖的方式呈現每次練習的正確率,讓使用者可以檢視其練習的成效
- 建議:根據其練習的成效給予練習不同動作的建議,例如:ABC三種動作中,使用者在A動作的正確率連續好幾次非常高,但BC不見起色,此時所提供的建議就會是告知使用者多練習BC,然後有可以建議A的延伸動作
- 除了正確率外,也可以記錄使用者劈刀角度、平均施力、最大施力(從加速度推導)等數據(選擇性做),提供更完整的資訊給使用者參考
## 鏡頭 + 即時骨架分析
### 體感互動裝置總整理

### 分析影片
[以深度學習識別肢體動作達成之舞蹈濾鏡特效](http://ncs2019.nqu.edu.tw/cn/thesis/NCS2019_thesis/07-8035.pdf)
- TensorFlow Object Detection API
https://ithelp.ithome.com.tw/articles/10238971
### 即時分析
#### Azure Kinect(ver. 2)
- 功能:
- 加速計和陀螺儀 (IMU):感應器方向和空間追蹤
- 紅外線發射器宇紅外線CMOS攝影機構成深度感測器=>偵測姿勢與動作
- 12 MP RGB 攝影機
- 外部同步接頭,可輕鬆從多部 Kinect 裝置同步感應器串流
- 麥克風:語音辨識
- 相關SDK-人體追蹤SDK
- kinect人體骨架

- 缺點:
- 偵測範圍要求較嚴格
- 延遲:晶片處理速度有待加強
- 實際案例
- [Tempo](https://tempo.fit/how-it-works):在使用該產品健身當下,追蹤使用者的動作給予及時回饋

- [姿勢比對](http://ir.lib.isu.edu.tw/retrieve/109272/isu-104-isu10303003m-1.pdf):論文裡的2.3.1小節
### AI Model與套件
#### Intel OpenVINO
OpenVINO是電腦視覺與深度學習應用的開發套件,具有模型優化器和推理引擎,支援常見的深度學習框架所訓練好的模型與參數,結合硬體加速晶片,在邊緣運算上可以達到不錯的效果。
結果:https://miro.medium.com/max/875/1*r00Bfn1yDyu_jNvQ_ThJ1Q.gif
參考:
- VINO https://docs.openvino.ai/2021.2/index.html
- Human Pose Estimation
https://docs.openvino.ai/2021.2/omz_demos_python_demos_human_pose_estimation_demo_README.html#demo_output
(可以降低延遲、提升FPS)
- 安裝教學
https://medium.com/ching-i/intel-openvino%E4%BB%8B%E7%B4%B9%E8%88%87%E5%AE%89%E8%A3%9D%E6%95%99%E5%AD%B8-15b07473d998
#### Pose Estimation
手把手刻程式碼教學,也有附程式碼,能即時算位置和角度
https://www.youtube.com/watch?v=brwgBf6VB0I
程式碼與實際執行影片
https://drive.google.com/drive/folders/1Lsf_2HQpze1kvzL6UWjKE5tQ5HBm9q-U?usp=sharing
## 感測器(測速度、加速度之類的數據)
參考 高爾夫球揮桿分析:https://ir.nctu.edu.tw/bitstream/11536/48395/2/651702.pdf
### 加速度計技術類型(偵測物體的移動行為)
- 壓阻式(Piezoresistive)
1.結構簡單、實現較為容易,特別適合用來測量低頻加速度應用。
缺點:易隨溫度變化而產生零位漂移及靈敏度漂移,需進行補償。
- 電容式(Capacitive)
1.解析度、靈敏度高
2.量測範圍大
3.動態回應時間短,適合高頻的加速度應用
4.可靠性高,可在高溫、高壓、強輻射及強磁場等惡劣的環境中工作,也能耐受極大衝擊,適用範圍極廣
5.同時由於電容式為非接觸式量測,因此使用壽命可以很長
6.體積小、響應速度快、位移量小和消耗功率低
缺點:採梳狀結構,在生產設計具有相當難度,不容易掌握
- 熱對流式
1.利用一個加熱的重氣泡在加速度影響下的運動來探測加速度。
2.低成本
缺點:環境溫度的變化更為敏感,回應頻率也無法太快,也有功耗偏高的限制。且只能做到二軸的感測能力,尺寸也比電容式及壓電式來得大。
### 陀螺儀技術類型-用來偵測出待測軸向上的角速度變化量(偵測物體水平改變的狀態)
簡單的陀螺儀原理解釋: https://youtu.be/j-tloYKuUoA
- 音叉式(Tunning Fork)
- 雙質量振動式(Dual-mass Vibrating)
- 半球諧振式(HRG)
- 環式(Ring Gyro)
- 梳狀驅動諧振式(Comb-drive resonator)
### 常見的動態感測器
- 三軸 G-sensor(也稱為加速度規)
以直角座標系來看,三軸就分別是 X(Right/Left)、Y(Forward/Back)、Z(up/down)。
功能為測運動體的加速度(也就是速度變化的快慢)
參考應用: wii的遙控器
- 三軸 Gyro(陀螺儀)
偵測角速度,輸出的單位是(度 / 秒)。 三軸分別為Raw、Yaw 跟 Pitch 三個轉動的參數,順時針為 +,逆時針為 - 。
墜落、傾斜、移動、轉動、撞擊或振動所產生劇烈或微小變化,都能夠被偵測出來,但設計結構較為複雜,元件單價始終偏高。
參考應用: 智慧型手機(最早是iphone 4)
## 劍道教學
### 移動步法
* 走步: 在距對手較遠(約4-5步)時,可用於前進或後退,與平常走路相似,兩腳交替前進或後退。

* 滑步: 滑步是劍道技術中使用最多的,可以向前、後、左、右及四個斜向做八個方向移動。
1. 前進: 右腳首先向前滑動,左腳緊跟著右腳往前滑動。

2. 後退: 左腳首先向後滑動,右腳跟左腳滑動後退。

3. 左移: 左腳首先滑向左方,右腳跟著往左滑動。

4. 右移: 右腳首先滑向右方,左腳跟著往右滑動。

5. 斜向移動: 向左前、左後、右前、右後四個方向移動時,移動方向(往左 or 往右)的腳首先移動,然後另一腳跟進。

* 閃步: 當對手從正面攻擊時,自己向左或向右躲閃;或還擊對手時使用向兩側移動的步法。
1. 右閃步: 右腳向右斜前方跨出,左腳緊跟右腳閃開。
2. 左閃步: 左腳向左斜前方跨出,右腳緊跟左腳閃開。

* 墊步: 與對手距離較遠時,以跳躍形式攻擊對手所使用的步法。
-> 左腳向右腳靠攏(左腳前移),然後左腳蹬地,右腳借左腳蹬地之力,向前跨一大步,緊跟著左腳追上右腳。

### 握刀方法
* 左手的小指、無名指握住刀的柄部尾端;右手也用小指、無名指握住刀鄂下方(刀柄上端);左、右手的虎口均要同刀保持直線,由上向下壓緊刀柄。

### 持刀姿勢(身態)
* 中段: 中段為劍道中最常見的持刀姿勢。從進攻或者對壘來說,中段架勢都是最適宜的架勢。此外,中段姿勢還能應付來自任何方向的攻擊。
1. 持刀姿勢: 左手握刀柄端部,對準自己的腹部中央(或中下),離身體約一個拳頭的位置。右手握刀柄上部,起到固定方向的作用。刀尖向正前上方,對淮對手咽喉部位。

2. 腳步位置: 兩腳間隔約15公分,右腳在前,左腳尖與右腳跟成水平對齊。右腳貼地,左腳跟稍離地面。

3. 頭部: 頭部挺直,雙眼注視對手的眼睛。
* 雙手上段: 上段姿勢屬於專門攻擊的姿勢。上段姿勢有多種形式,根據手或腳的位置不同 -> 分為左上段和右上段姿勢。
1. 右雙手上段: 由中段姿勢開始,右腳向前方大步跨出,雙手握刀舉至頭部。

2. 左雙手上段: 由中段姿勢開始,左腳向前方大步跨出,雙手握刀舉至頭部。

* 下段: 下段姿勢是以防守為主的姿勢,同時也可以作為由下向前上方攻由的姿勢。它和中段、上段姿勢相比,較為輕鬆省力。
1. 持刀姿勢: 由中段姿勢開始,竹刀的尖部向下,指向對手的膝蓋部位。上身不可前傾,須穩定重心。

* 拖刀: 由中段姿勢變為雙手垂掛持刀,刀柄向上,刀尖向右側腰下方斜掛;右手處在右腰的位置,上身半面右轉,雙眼注視前方。

### 攻擊(劈、刺)方法
劍道攻擊主要有劈刀和刺刀兩種。劈、刺對手的位置是有規定的,不是攻擊任何部位都可以得分。根據劍道競賽規則,劈、刺到有效部位時,如果動作正確、合乎要求,可得"一本",即一分。劈、刺的有效部位有面部、喉部、胴部(胸、腹)、腕部四個部位。

* 攻擊面部
1. 正面劈刀: 正面劈刀是剑道所有劈刀技法中最常用的、最有效的刀法。
1) 由中段姿勢開始,右腳向前跨出一步,同時雙手持刀向前上方舉起。

2) 刀舉到最高位置時,立即向對手正面中心線劈下去,同時左腳即向前跟進,向右腳靠攏。

3) 正面劈刀注意事項:
* 舉刀時應從左手下方窺視對手。
* 正面劈擊時,兩手臂伸直,兩手向內側壓緊,增加握刀力量。
* 劈刀時右手的高度相當於肩部,左手在腹上部。
* 劈擊時以左手定中心,右手定方向,兩手虎口同時向下壓力。
2. 右面劈刀:
1) 由中段姿勢開始,右腳向前跨出一步,同時雙手持刀向前上方舉起。

2) 刀上舉後,動作不停頓;左腳向前跟進一步,刀偏左和自己頭部成45度夾角,由上向下斜劈對手右面部。右手與肩同高,左手與腹同高。

3) 右面劈刀注意事項:
* 舉刀時,將上舉的刀放置在頭上方,僅右腕向頭左側偏離
* 劈刀時,必須在頭左側45度處下劈,同時注意左手不能脫離身體中心線。
* 刀不能橫向劈擊,必須用刀刃劈。
3. 左面劈刀:
1) 由中段姿勢開始,右腳向前跨出一步,同時雙手持刀向前上方舉起。

2) 刀上舉後,動作不停頓;左腳向前跟進一步,刀偏右和自己頭部成45度夾角,由上向下斜劈對手左面部。右手與肩同高,左手與腹同高。

3) 左面劈刀注意事項:
* 舉刀時,將上舉的刀放置在頭上方,僅右腕向頭右側偏離
* 劈刀時,必須在頭右側45度處下劈,同時注意左手不能脫離身體中心線。
* 刀不能橫向劈擊,必須用刀刃劈。
* 攻擊胴部
1. 右胴劈刀:
1) 由中段姿勢開始,右腳向前邁進一步;雙手舉刀到頭上方,從左手碗下瞄淮對手的右胴部分。

2) 刀上舉動作不能停頓,迅速將刀向頭左側迴轉,然後劈擊對手的右胴部位。

2. 左胴劈刀:
1) 由中段姿勢開始,右腳向前邁進一步;雙手舉刀到頭上方,從左手碗下瞄淮對手的左胴部分。

2) 刀上舉動作不能停頓,迅速將刀向頭右側迴轉,然後劈擊對手的左胴部位。
3. 右胴、左胴劈刀注意事項:
* 劈擊右 or 左胴部位時,兩手持刀高度與對手胴部相當,左手在身體正中線上。
* 劈刀時身體隨刀跟進,左腳迅速蹬地。
* 持刀迴轉淮備劈擊對手時,右手腕要盡量扭轉,以弦的背側劈擊對手,不可橫刀擊打。
* 左手與右手在擊到對手胴部時,高度須相等。
* 攻擊手腕
1. 右腕劈刀:
1) 由中段姿勢開始,右腳向前進步,同時雙手舉刀至頭上方。

2) 舉刀到頭部位置時,急速向對手右手腕劈刀,同時左腳向前滑動,向右腳靠攏。

2. 左腕劈刀:
1) 由中段姿勢開始,右腳向前進步,同時雙手舉刀至頭上方。

2) 舉刀到頭部位置時,急速向對手左手腕劈刀,同時左腳向前滑動,向右腳靠攏。
3. 右腕、左腕劈刀注意事項:
* 刀的上舉或下劈,都是在中心線上進行。
* 刀上舉的幅度比面部劈刀的幅度要小一點。
* 劈擊對手右手腕的力量,要用身體壓人的力量。因此,不能僅用手臂的力量去劈刀,而要迅速地將左腳跟進,產生全身的最大慣性。
* 劈刀至對手手腕時,自己的右手持刀高度相當於對手手腕的高度,左手仍然放在小腹位置。
* 攻擊喉嚨
1. 喉嚨突刺:
1) 由中段姿勢開始,右腳向前跨出一步。

2) 同時用刀尖向對手的喉嚨筆直刺去,同時左腳跟進靠近右腳。

2. 喉嚨突刺注意事項:
* 突刺時不可只是手臂前伸用力,而要把全身的前壓力量都作用於刀尖上。因此,突刺時左腳必須跟進靠近右腳。
* 突剌喉嚨時,左手腕部不能上抬,而應用力持刀,由自己腹部向上突刺。
* 突刺後要立即恢復到中段姿勢,防止對手反攻。