2020년도 CVPR에 accepted되어 나름 흥미를 끌었던 3D Human Pose Estimation 분야 페이퍼가 하나 있다. 바로 Deep Kinematics Analysis for Monocular 3D Human Pose Estimation이다.
해당 페이퍼가 supplementary를 제공하지 않는 이유를 모르겠었는데, 늦게서야 깨달아서(생각해보니 너무 늦게 깨달았다..) 이에 대해 얘기해보려 한다.
일단 2D Pose Estimation과는 다르게 3D 영역에서는 인체를 모델링하는 것이 꽤 유효한 일이다. 그리고 가장 쉽게 접근할 수 있는 것이 바로 위에서 얘기한 Kinematics Analysis이다. 뼈는 고정된 길이를 가지고 있고, 실제로 parent joint를 기준으로 direction만 시간에 따라 변하는 게 인체 동작이다. 그렇기에 해당 페이퍼에서는 length estimator와 direction estimator를 따로 두어 그 결과를 composition해 skeleton(J개의 joints)을 구성하는 방식을 고안했다.
direction은 time에 대해 dynamic하기에 이를 학습하는 것은 유의미하다. 그러나 time에 대해서 static한 bone-length를 딥러닝 모델로 학습하려는 것이 무의미한 작업이다.
Human3.6M 데이터셋을 기준으로 보자. 3D Human Pose Estimation task에서 유의미하게 사용되고 있는 subject(피사체, 배우) 수가 10명이 안된다. test subject인 S9, S11 빼면 정말 몇 명 되지 않는다. 아무리 action의 수가 많더라도 결국 전체 데이터셋에서 subject 수는 몇 명인 것이다.
그런데 이 수많은 action들에 대해 length를 학습하면? 몇 명의 subjects에 대해 length estimator가 overfitting될 수밖에 없는 것이다. 아무리 다양한 자세와 다양한 view-point가 있어도 결과값이 몇 개로 고정되기 때문에 overfitting이 발생한다. test data에 대해 좋은 성능을 낼 수 없으며, 내더라도 실제로 쓰기 참 어려울 것이다.
결국 이런 length estimator를 별도로 두어 학습하기 위해서는 subject에 대한 data augmentation이 필요할 것이다. 그러나 연구자들이 그런 수고스러움을 각오하기에는 length-direction decomposition 방식 외에도 조금이라도 정확도를 올릴 수 있는 건덕지가 넘쳐난다.
특히나 최근에는 트랜스포머 모델들이 유행하고 있다보니 연구자들이 그쪽으로 파헤치기도 바쁜 듯하다.
이것이 위의 페이퍼의 속행 연구가 잘 나오지 않거나 뜨지 못하는 이유가 아닌가 싶다.
개인적으로 실제 3D 상황 + 인체를 모델링하여 정확도를 향상시키는 방법 중 주목하는 것이 있는데,
- occlusion-aware model
- variety view-point(data augmentation)
- modeling for human skeleton
등이다.
2d keypoints에서 3d joints로 바로 추론하기보다는 그런 feature engineering이 분명 좋은 성능을 낼 수 있다고 생각한다. length estimator의 overfitting 문제를 해결하는 그런 연구 안나오려나? 눈에 잘 안띄는 게 아쉽다.