---
# System prepended metadata

title: 20250909 論文_STARS
tags: [看論文]

---

## Diverse Human Motion Prediction Guided by Multi-Level Spatial-Temporal AnchoRS
[github](https://github.com/Sirui-Xu/STARS)
### 概述
該研究提出 **STARS（Spatial-Temporal Anchor-based Sampling）方法**，透過將潛變量分解為 **「可學習的決定性錨點」** 與 **「隨機噪聲」** ，並結合**時空分解**與 **IE-STGCN 網路**，成功同時**提升了人體動作預測的多樣性與準確性**，克服了傳統生成模型的 **mode collapse** 與**長期預測困難** 的問題。

### 內容

1. **提出 STARS（Spatial-Temporal Anchor-based Sampling）方法**：將潛變量分解為隨機噪聲與可學習的決定性「錨點」，避免僅依賴隨機取樣，促進多樣性並捕捉不同模式。
2. **時空分解**：進一步將錨點拆解為「空間錨點」與「時間錨點」，分別控制動作的空間差異與時間差異，提供更直觀且可解釋的控制能力。
3. **設計 IE-STGCN（Interaction-Enhanced Spatial-Temporal Graph Convolutional Network）**：在骨架序列的圖卷積網路中引入錨點，並利用空間鄰近性與跨層交互共享來提升預測能力。
4. **統一框架**：兼顧隨機預測與確定性預測，在多樣性與準確性上均優於現有方法，提供一個統一且更高效的動作預測框架。

![image](https://hackmd.io/_uploads/rySL7w3cgx.png)


### 資料集
---

|    名稱    |           主體／頻率            | 關節數(V) |                    任務                     |
|:----------:|:-------------------------------:|:------:|:-------------------------------------------:|
| Human3.6M  | 11 位受試者，約 360 萬幀，50 Hz/s |   17   | 給定過去 25 幀(0.5秒)，預測未來 100 幀(2秒) |
| HumanEva-I |        3 位受試者，60 Hz/s        |   15   | 給定過去 15 幀(0.25秒)，預測未來 60 幀(1秒) |

|    參數     |                   設定                   |
|:-----------:|:----------------------------------------:|
|    epoch    | 500 |
| batch size  | 16 |
|  每個 epoch 處理的訓練樣本   | Human3.6M：5000，HumanEva-I：2000 |
| DCT 係數(M) | Human3.6M：前 20 個，HumanEva-I：前 8 個 |
| 各層通道數 𝐶^(𝑙)^ | C^(0)^=3, 128, 64, 128, 64, 128, 64, 128, C^(8)^=3 |


### 架構圖
---
[維度計算](https://hackmd.io/@q_bRZRi5Q2iTv2zdBQYQHg/rkqWvcnqgg)
![image](https://hackmd.io/_uploads/ByrKf2Yqxx.png)

#### 1. 過去動作序列輸入及 DCT 前處理。 
* 輸入一段長度為 𝑇~ℎ~ 的過去動作序列 𝑋。
![image](https://hackmd.io/_uploads/HJm6xDjqxe.png)
![image](https://hackmd.io/_uploads/B1VQywsclx.png =30%x)
![image](https://hackmd.io/_uploads/SyruxPi5xe.png  =25%x)
    * X：是一個長度為 𝑇~ℎ~ 的序列（時間維度）
    * 𝑥~𝑖~：第 𝑖 個時間點的人體姿態
    * V：關節數
    * C^(0)^：每個關節的座標維度，通常是 3。



* DCT 前處理：
將最後一幀姿態 𝑥~𝑇ℎ~ 重複 𝑇~𝑝~ 次補到序列後面以補足序列長度。
![image](https://hackmd.io/_uploads/ryxUERK9ll.png =60%x)
![image](https://hackmd.io/_uploads/BJPEE7o9ge.png =40%x)

    >因為 DCT 需要固定長度的輸入

    施以離散餘弦轉換（DCT）將時間序列轉換到頻率域。
![image](https://hackmd.io/_uploads/HJmJDY29xe.png =60%x)
    * C：一個事先定義好、固定的DCT「基底函數」，用來把時間域的序列 𝑋 轉換到頻率域。
    * 𝑀：選擇的 DCT 頻率分量數，通常不需要保留所有頻率，因為高頻部分大多是雜訊或細微擾動 → 只取前 𝑀 個頻率分量（低頻），丟掉其餘的高頻



    得到**張量**形式的頻率域特徵。
![image](https://hackmd.io/_uploads/H1qNLRFqee.png =30%x)

#### 2. 時空圖卷積編碼初步特徵。 
* 將頻率域特徵作為 ST-GCN（Spatial Temporal Graph Convolutional Network）時空圖卷積網絡的輸入，構建「關節-頻率」的圖結構(Graph)。
    >轉成圖結構之後，ST-GCN 就能同時利用「空間關係」和「頻率關係」來學習，對應到人體動作的物理結構與時間變化。

    ![image](https://hackmd.io/_uploads/BkZsOAtqlg.png =40%x)

    * **節點 (Nodes)**
每個「頻率–關節」的組合(𝑓~𝑖~,𝑣~𝑗~)對應一個**節點**，總共有 𝑀×𝑉 個節點，其中：
        * 𝑀：DCT 保留的頻率數量
        * 𝑉：關節數量
    * **邊 (edges)**
邊 (i, j) 的權重由 鄰接矩陣 (adjacency matrix)  Adj^(𝑙)^[i][j] 來表示，維度是MV×MV。
代表節點之間的連結關係，為了簡化學習， adjacency 被拆成 空間部分 和 頻率部分：
![image](https://hackmd.io/_uploads/SkTXkk59gx.png =40%x)
        * Adj~s~^(𝑙)^：空間 adjacency（只連結「同一頻率下，不同關節」）
        * Adj~f~^(𝑙)^：頻率 adjacency（只連結「同一關節，不同頻率」）。

* 頻率域特徵經由 ST-GCN 層的圖卷積運算，對這些**節點**進行特徵提取，從而初步編碼出動作的時空特徵表徵。

#### 3. ST-GCN 基本運算
ST-GCN 的每一層都透過圖卷積運算將輸入特徵 𝐻^(𝑙)^ 投影到下一層：
![image](https://hackmd.io/_uploads/rk4aW69qeg.png =90%x)
1. 通道重組：把每個節點的 𝐶^(𝑙)^ 維特徵映到 𝐶^(𝑙+1)^。
![image](https://hackmd.io/_uploads/HJ-_M659gx.png =20%x)
2. 頻率聚合（同關節、跨頻率）：第 𝑖 個節點會按 𝐴𝑑𝑗~𝑓~[𝑖,𝑗] 權重，累積所有頻率鄰居 𝑗 的信息。
![image](https://hackmd.io/_uploads/rkajzp9qgg.png =20%x)
3. 空間聚合（同頻率、跨關節）：再沿骨架拓撲（相鄰/對稱關節）收集訊息，得到同一頻率下的空間融合結果。
![image](https://hackmd.io/_uploads/ryoz7pc5ex.png =20%x)
5. 非線性：去噪/稀疏/增加表達力。
![image](https://hackmd.io/_uploads/rJBWXT59ex.png =20%x)

#### 4. Spatial-Temporal Anchor 注入與隨機噪聲融合
* Anchor-Based Sampling
過去的動作生成模型通常直接用**隨機噪聲取樣** 𝑧∼𝑝(𝑧) 來增加多樣性。
引入一組可學習的錨點參數 𝐴={𝑎~𝑘~}^𝐾^~𝑘=1~ 代表**確定性 (deterministic) 成分**，用來捕捉不同模態的「大方向」;隨機噪聲 𝑧 則作為**隨機性 (stochastic) 成分**，用來表現模態內部的細節差異。
    * **Anchor 𝑎~𝑘~∈𝐴**
    128 維的可學習向量，每個 Anchor 在訓練過程中透過損失函數學得(PyTorch)，逐漸對應到一種「主要模式」。不同 Anchor 的分佈會自動調整，確保能覆蓋多種未來動作類型。
        * 空間錨點 𝐴~𝑠~={𝑎^𝑠^~𝑖~}：在 latent space 裡代表一種「空間上的動作傾向」。
        * 時間錨點 𝐴~𝑡~={𝑎^𝑡^~𝑗~}：在 latent space 裡代表一種「時間上的動作特徵」。
        
        把一組空間錨點與一組時間錨點兩兩配對，就會形成 𝐾 = 𝐾~𝑠~ x 𝐾~𝑡~ 個「時空組合錨點」。
    
    * **隨機噪聲取樣 𝑧∼𝑝(𝑧)**
    64維的向量，從先驗分佈 𝑝(𝑧) 取樣，常用設為標準高斯分佈 𝑁(0,𝐼)。在固定某個 Anchor 的情況下，增加 細微隨機變化（micro-level 差異），避免模型在同一模態下產生完全一樣的動作序列。

* 在指定的卷積網絡層會引入 **空間–時間錨點** ，用於控制動作的空間模式與時間頻率模式，使模型聚焦於不同的動作模式。
    * 在一般情況下，模型預測為：
![image](https://hackmd.io/_uploads/B1FNZxc5xe.png =90%x)

    * 在 **多層級 (multi-level)** 設計下，會有兩層 Anchor 注入（第 4 、 6 層）：
![image](https://hackmd.io/_uploads/By22Zgq9xg.png)
* 新的 multi-modal 生成分布
綜合所有「不同模式 (Anchor)」和「模式內的隨機變化 (Noise)」後模型能生成所有可能的未來動作的機率分布。
![image](https://hackmd.io/_uploads/Hypm5Z9qxe.png =70%x)

#### 5. ST-GCN 層特徵提取與約束
這些機制讓模型能持續提取更高階的時空特徵，同時保留骨架結構的物理合理性。

1. **空間交互剪枝**：只保留骨架中相鄰關節與左右對稱關節的連接，將不合理的關聯權重設為 0，避免網絡學習到不合理的依賴關係。
其中，M~s~ 是一個「只允許合理空間連邊」的 0/1 遮罩矩陣，形狀和空間鄰接相同。
![image](https://hackmd.io/_uploads/rkDytQocee.png =50%x)
![image](https://hackmd.io/_uploads/HJX94Qoqex.png =70%x)
![image](https://hackmd.io/_uploads/HkbJSmiceg.png =70%x)

2. **跨層交互共享**：相鄰或間隔的卷積層共用部分鄰接矩陣參數，避免在不同層中重複學習相同的關節關聯模式，降低參數量並強化一致性。
實驗中發現每隔一層共享鄰接矩陣是一種有效做法。
![image](https://hackmd.io/_uploads/H1HuKmo9lg.png =60%x)


#### 6. 輸出預測係數並重建未來動作序列
經過最終一層 ST-GCN 圖卷積後，模型模型先把最終特徵 𝐻^(𝐿)^∈𝑅^(𝑀𝑉)×𝐶^ reshape 成 𝑌∈𝑅^𝑀×𝑉×𝐶^（仍在頻率域），並輸出 𝐾 組預測的 DCT 係數。
![image](https://hackmd.io/_uploads/rk9CBlq5le.png =30%x)

對這些頻率域係數進行反向離散餘弦轉換 (IDCT)，將它們還原回時間域的動作序列。
![image](https://hackmd.io/_uploads/Bk66Tms5gg.png =60%x)
![image](https://hackmd.io/_uploads/S15h6Qs9le.png =30%x)

取出最後 𝑇~𝑝~ 幀，作為模型的未來動作預測。
![image](https://hackmd.io/_uploads/BJnxcEi9gl.png =50%x)
![image](https://hackmd.io/_uploads/ByyBRmjqeg.png =30%x)

### 指標
---
1. **APD（Average Pairwise Distance）**：測量預測樣本之間的平均距離(↑)
![image](https://hackmd.io/_uploads/BJYg9Usqeg.png =40%x)
* 𝐾：候選條數；預設𝐾=50
* ![image](https://hackmd.io/_uploads/HkdIdLiqel.png =4%x)：第 𝑘 條候選預測序列（長度 𝑇𝑝）
* ∥⋅∥~2~：歐氏（ℓ2）距離，單位是公尺。

2. **ADE（Average Displacement Error）**：測量預測位置和真實位置之間的平均距離(↓)
![image](https://hackmd.io/_uploads/B1pAKUsqel.png =30%x)
* 𝑇𝑝：預測長度
* min~k~：在 𝑘=1,…,𝐾 的候選中，取距離最小的那一條
* ![image](https://hackmd.io/_uploads/HkdIdLiqel.png =4%x)：第 𝑘 條候選預測序列（長度 𝑇𝑝）
* Y：單一真值未來序列（長度 𝑇𝑝）
* ∥⋅∥~2~：歐氏（ℓ2）距離，單位是公尺。

3. FDE（Final Displacement Error）：測量預測的最後位置與真實位置之間的距離(↓)
![image](https://hackmd.io/_uploads/rJYX58oqxg.png =35%x)
* min~k~：在 𝑘=1,…,𝐾 的候選中，取距離最小的那一條
* ![image](https://hackmd.io/_uploads/HkdIdLiqel.png =4%x)：第 𝑘 條候選預測序列（長度 𝑇𝑝）
* [𝑇~𝑝~]：表示預測長度的最後一幀
* Y：單一真值未來序列（長度 𝑇𝑝）
* ∥⋅∥~2~：歐氏（ℓ2）距離，單位是公尺。

4. MMADE（Multi-Modal ADE）：針對每個真實軌跡，選擇最接近的候選預測來計算平均誤差(↓)
![image](https://hackmd.io/_uploads/S1K4sLoqex.png =35%x)
* N：真實軌跡的多模態數量
* 𝑇𝑝：預測長度
* min~k~：在 𝑘=1,…,𝐾 的候選中，取距離最小的那一條
* ![image](https://hackmd.io/_uploads/HkdIdLiqel.png =4%x)：第 𝑘 條候選預測序列（長度 𝑇𝑝）
* ![image](https://hackmd.io/_uploads/rkjI3Uoqee.png =10%x)：多模態真值集合
* ∥⋅∥~2~：歐氏（ℓ2）距離，單位是公尺

5. MMFDE（Multi-Modal FDE）：針對每個真實軌跡，選擇最接近的候選預測終點來計算平均誤差(↓)
![image](https://hackmd.io/_uploads/SkeLoIj9lg.png =40%x)
* N：真實軌跡的多模態數量
* min~k~：在 𝑘=1,…,𝐾 的候選中，取距離最小的那一條
* ![image](https://hackmd.io/_uploads/HkdIdLiqel.png =4%x)：第 𝑘 條候選預測序列（長度 𝑇𝑝）
* [𝑇~𝑝~]：表示預測長度的最後一幀
* ![image](https://hackmd.io/_uploads/rkjI3Uoqee.png =10%x)：多模態真值集合
* ∥⋅∥~2~：歐氏（ℓ2）距離，單位是公尺


### 論文結果
---
1. 量化比較實驗(K = 50)：在 Human3.6M 和 HumanEva-I 資料集上，與 GMVAE, DeLiGAN, DSF, DLow, GSPS 等基準方法比較。Human3.6M 和 HumanEva-I 均在五項指標勝出。
![image](https://hackmd.io/_uploads/B1lasSiqgg.png)

2. 多層級時空錨點的消融實驗：探討多樣性與準確率的 trade-off。證明了多層級錨點有助於捕捉更多模式，但多樣性與準確率之間存在 trade-off。
![image](https://hackmd.io/_uploads/rJXeAHoclx.png)

3. 錨點數量與樣本數量的影響：更多錨點與樣本數能帶來更好表現，但樣本數過多會增加計算成本。
![image](https://hackmd.io/_uploads/HkMGABjqgx.png)

4. 泛化能力測試：把 anchor-based sampling 植入到 GSPS 與 IE-STGCN，檢驗是否能帶來一致改進。證明錨點機制是通用的 plug-and-play 模組，能提升不同模型的表現。
![image](https://hackmd.io/_uploads/SJ2ynrsqxx.png)

5. 質化比較實驗：視覺化多個樣本的起始姿態、最終姿態與中間序列，展示了 STARS 的可控性與合理性。
![image](https://hackmd.io/_uploads/SkihABjqxe.png)
![image](https://hackmd.io/_uploads/Sy_p0Bi5ex.png)
![image](https://hackmd.io/_uploads/SJwR0Si9lx.png)

6. 確定性預測實驗(K = 1)：重新訓練 IE-STGCN-Short（短期） 與 IE-STGCN-Long（長期）並與 LTD, STS-GCN, MSR-GCN 比較。在短期與長期預測上都優於基準方法，STARS 不僅適用於多樣性預測，也能在確定性預測上達到 SOTA 水準。
![image](https://hackmd.io/_uploads/ByBJkUo5gl.png)
