---
# System prepended metadata

title: HybrIK與PoseFormerV2之比較：以伏地挺身為例

---

## 測試說明

這次的測試主要是比較HybrIK和PoseFormerV2在「三維姿態估測」方面的差異。延續PoseFormerV2測試時的主題，這次同樣以幾個從不同角度進行拍攝的伏地挺身示範影片，對它們在HybrIK的輸出結果進行分析（以gif檔表示）。

## 輸出結果

### 1. 正面視角

#### HybrIK

![001-1](https://hackmd.io/_uploads/By29GgtRp.gif)
![001-2](https://hackmd.io/_uploads/r13oMxKRa.gif)

#### PoseFormerV2

![push-up_001](https://hackmd.io/_uploads/Bkx3ouWq3T.gif)

#### 比較

以正面視角進行拍攝時，人物的下半身會頻繁地被軀幹遮住，而在輸出結果中，可以看到PoseFormerV2並不能很好地繪製出腰部以下的身體姿態（不自然的膝部彎曲），而且後半還有出現「手臂合併」的錯誤辨識（或許是動作變化太快所致），這兩點可以說是有待克服的問題。

相較於PoseFormerV2錯誤率較高的輸出結果，HybrIK並沒有手臂合併的情形發生，而腰部以下的姿態估測雖仍存在一些誤差，但大多時候能估測出筆直的身體（PoseFormerV2總是顯示為膝部彎曲）。此外，HybrIK似乎有著較小的延遲，這也使其在偵測快速動作時，比起PoseFormerV2更具優勢。

### 2. 側面視角

#### HybrIK

![002-1](https://hackmd.io/_uploads/HJmYXeK0a.gif)
![002-2](https://hackmd.io/_uploads/r1YKXgFR6.gif)


#### PoseFormerV2

![push-up_002](https://hackmd.io/_uploads/Hy_-qbchp.gif)

#### 比較

在側面視角中，人物僅有右側軀體被遮蔽，繪製出的三維身體姿態與實際影像十分相近，說明了PoseFormerV2在輕微遮蔽的情況下仍能預判身體姿態的可能位置。而對於伏地挺身計數器來說，這一點可以幫助計數器精進為「雙邊動作評估」——同時對左右兩側的軀體進行動作估測，藉以更準確地進行計數和動作提示。

而HybrIK對於被遮蔽的右側軀體，則輸出了較不穩定的估測結果，雖然HybrIK比起PoseFormerV2多輸出了手掌、腳掌的具體樣貌，但右手、右腳時常出現錯誤的移位，相比PoseFormerV2的輸出要來得遜色。

### 3. 介於 1 和 2 之間的視角

#### HybrIK（由於HackMD的1MB大小限制，這邊僅以圖片表示）

![image-000001](https://hackmd.io/_uploads/BkaGvFqCT.jpg)
![image-000001](https://hackmd.io/_uploads/HJrrPKqAT.jpg)
（圖一：起始狀態）

![image-000018](https://hackmd.io/_uploads/S1afvKc0a.jpg)
![image-000018](https://hackmd.io/_uploads/rywIPYq0p.jpg)
（圖二：左腳異常）

![image-000063](https://hackmd.io/_uploads/rk6MDKcA6.jpg)
![image-000063](https://hackmd.io/_uploads/Hk3DwtcA6.jpg)
（圖三：伏臥狀態）

#### PoseFormerV2

![push-up_003](https://hackmd.io/_uploads/r1aVhZ926.gif)

#### 比較

此外，在介於正面和側面的視角中，PoseFormerV2所描繪出的三維身體姿態品質也介於兩者之間。其膝部的彎曲角度雖仍有些過於放大，但並不如正面視角那般辨識失敗，仍有一定的可信度。

HybrIK則出現和側面視角估測時同樣的問題，其對於遮蔽部位的估測經常出現不穩定的漂移，而伏臥時的左手（臂膀部分被遮蔽）三維成像也有錯誤的移位，正確度和穩定性不如PoseFormerV2來得高。

### 4. 多人出現的正面視角

#### HybrIK

![004-1](https://hackmd.io/_uploads/BJW4vltRT.gif)
![004-2](https://hackmd.io/_uploads/Hk_4wlK0T.gif)


#### PoseFormerV2

![push-up_004](https://hackmd.io/_uploads/S14k-Gq36.gif)

#### 說明

在多人出現的影像中，PoseFormerV2僅會取其中一人進行估測。而在這次的正面視角中，人物的下半身雖仍會頻繁地被遮住，但其膝部的landmarks一直都處於可見狀態，這也使得PoseFormerV2繪製的三維姿態，在膝部以上相當準確，只有小腿的部分會異常擺動。由此可以推測，PoseFormerV2相當依賴landmarks進行姿態繪製，這點相較MediaPipe或OpenPose的預判能力遜色了點。

HybrIK同樣只會取一人進行估測，但在其三維估測中，可以發現人物回復到起始狀態時，大腿以下的成像會移位到畫面外；而在伏臥狀態，由於人物腰部以下的部位會被遮住，腿部也呈現不自然的彎曲。至於手掌錯誤的姿勢估測，似乎說明HybrIK無法估測過大的手腕彎曲角度。雖然HybrIK的估測對象與PoseFormerV2不同，但也能藉此了解HybrIK存在的問題。

### 5. 總結

對於遮蔽部分的判讀，雖然兩者的輸出各有好壞，不過HybrIK顯然穩定性較PoseFormerV2低，其時常出現異常的大幅移位，PoseFormerV2則無此問題。不過HybrIK對於快速動作的估測，表現出了較好的輸出結果，這點是其相比PoseFormerV2更具優勢的地方。此外，HybrIK額外估測了手掌和腳掌，雖然現在的正確率不高，若能進一步訓練應該能成為另一個優點。

## 心得

這次的題目以另一種方式實作了三維人體估測，PoseFormerV2需要透過其它軟體的協助（如Unity3D），才能呈現出具體的人物模型，而HybrIK則直接將人體模型作為結果輸出，節省了不少轉換上的時間。不過我在安裝HybrIK時遇到的問題也比PoseFormerV2要來得多，幸虧GitHub上有許多人分享問題的解決方式，最後也順利運行了程式。
