---
# System prepended metadata

title: 0926

---

[A Skeleton-Based Rehabilitation Exercise Assessment System With Rotation Invariance](https://ieeexplore.ieee.org/document/10144079/citations#citations)
* 2023，有code
* [github](https://github.com/Kelly510/RehabExerAssess?tab=readme-ov-file)
* 只輸出正確或錯誤(非連續函數的打分)
* 時空圖卷積網路框架(ST-GCN)

### 目前自動化康復運動質量評估的方法主要利用三種類型的數據：
1. 可穿戴感測器的加速度數據
2. RGB 或深度相機的視頻數據
3. Kinect 等感測器獲得或使用電腦視覺技術從 RGB 影片中提取的身體關節數據



### 貢獻
1. 為了提高系統的穩健性，我們提出了一種新的「旋轉不變」描述符，即「人體骨架的點積矩陣」，並將其用作評估模型的輸入。使用這個描述符，受試者與攝像設備之間的相對位置可以是任意的。
2. 為了提供更多反饋，我們開發了一種基於Grad-CAM的可視化方法，該方法將與錯誤動作相關的人體關節標記為紅色，並提出了一個定量指標OvR來反映可視化的質量。

### 資料集
1.  Push-Up
2.  [IRDS](https://zenodo.org/records/4610859)
3.  [UI-PRMD](https://webpages.uidaho.edu/ui-prmd/)
![image](https://hackmd.io/_uploads/r1ZYvsbCA.png)


### 架構
![image](https://hackmd.io/_uploads/r14qKcWAC.png)
* 旋轉不變描述符（dot product matrix）：為了讓系統對骨架方向不敏感，骨架數據會被轉換為「點積矩陣」，這是一個「旋轉不變」的特徵描述符，從而保證即使受試者的方向變換，系統也能準確地處理。

* BatchNorm（批標準化）：在進入ST-GCN之前，會對數據進行批標準化，以提高模型訓練的穩定性。

* 模型結構：該系統由三個ST-GCN模塊堆疊而成，每個模塊的輸出通過下一個模塊進行處理，以逐步提取更深層次的特徵。具體來說，第一個模塊輸出的通道數是64，第二個模塊是128，第三個模塊是256。

* 平均池化（Average Pool）：最終從第三層ST-GCN模塊輸出的特徵圖進行空間和時間的平均池化，轉換為一個低維特徵向量。

* 線性層：平均池化後的特徵向量會經過線性層，轉化為二元分類結果，輸出運動是否正確的標籤（「正確」或「不正確」）。


Grad-CAM
* 核心是通過將正向的分類結果分數反向傳播到最後一層ST-GCN模塊的特徵圖，標記出對判斷結果貢獻最大的關節。
* 根據Grad-CAM的結果，與錯誤動作相關的關節會被標記為紅色，這樣用戶可以直觀地看到自己的哪個關節存在問題，有助於他們進行糾正。


### 我們的論文目前架構
![image](https://hackmd.io/_uploads/HJuts2M00.png)

### 其他需要的論文
從RGB影片中提取身體關節數據
[Learnable Triangulation of Human Pose](https://arxiv.org/abs/1905.05754#:~:text=Karim%20Iskakov,%20Egor%20Burkov,%20Victor)

LSTM
[Graph Convolutional Networks for Assessment of Physical Rehabilitation Exercises](https://ieeexplore.ieee.org/document/9709340)
![image](https://hackmd.io/_uploads/Bk9nfeO60.png)

---
### 補充

以下是 **FC（全連接層）**、**Flatten（展平層）**、**Pooling（池化層）** 和 **LSTM（長短期記憶網絡）** 的簡單描述：

1. **FC（Fully Connected Layer，全連接層）**
- **作用**：全連接層中的每個神經元與前一層的所有神經元都有連接。它進行線性加權，並應用激活函數來學習輸入與輸出之間的複雜關聯。
- **應用場景**：通常用於神經網絡的最後幾層，用來進行分類或回歸任務。
- **特點**：適合學習全局特徵和輸出最終預測結果。

2. **Flatten（展平層）**
- **作用**：將多維數據（如卷積或池化層的輸出）展平成一維向量，這樣數據可以被輸入到全連接層。
- **應用場景**：卷積神經網絡（CNN）中，通常在卷積層和池化層之後使用。
- **特點**：不改變數據的值，只改變數據的形狀，將高維特徵壓平成一維向量。

3. **Pooling（池化層）**
- **作用**：對卷積層輸出的特徵圖進行下採樣，減少特徵圖的空間維度，保留最重要的特徵，從而減少模型的計算量和防止過擬合。
- **應用場景**：常見於卷積神經網絡（CNN）中，用於處理圖像數據。常見的池化操作有最大池化（Max Pooling）和平均池化（Average Pooling）。
- **特點**：縮小特徵圖尺寸，保持關鍵信息，增強模型的空間不變性。

4. **LSTM（Long Short-Term Memory，長短期記憶網絡）**
- **作用**：LSTM 是一種特殊的循環神經網絡（RNN），用來學習和記憶長期的時間序列依賴。它通過「遺忘門」、「輸入門」和「輸出門」來控制信息的流動。
- **應用場景**：廣泛應用於需要時間序列處理的任務，如語音識別、自然語言處理、時間序列預測等。
- **特點**：能夠捕捉長期依賴，解決傳統 RNN 的梯度消失問題。

#### 總結
- **FC**：學習全局特徵，用於分類/回歸。
- **Flatten**：將多維數據展平為一維，用於全連接層的輸入。
- **Pooling**：降低空間維度，保留重要特徵。
- **LSTM**：學習時間序列數據的長期依賴。


