## 測試說明 這次的測試主要是比較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上有許多人分享問題的解決方式,最後也順利運行了程式。